“데이터베이스”란 무엇입니까?


14

이 질문에는 다음과 같은 많은 토론이있었습니다. 큰 검색 엔진은 어떤 데이터베이스 기술을 사용합니까?

너무 많은 토론으로 인해 혼란 스러웠습니다. 어쨌든 데이터베이스 란 무엇입니까? 관계형 데이터베이스 만 "데이터베이스"입니까? 객체 지향 데이터베이스는 "데이터베이스"입니까? 정보 (예 :지도, 목록 등)를 데이터베이스에 저장하고 검색 할 수있는 시스템이 있습니까?

또는 데이터베이스가 정보를 저장 / 검색해야하고 사용자 및 권한과 같은 일부 관리 기능이 있어야합니까? dBase III와 데이터베이스는 관계가 없었기 때문에 데이터베이스입니까?


@ypercube : "관련 데이터를 포함하는 여러 파일을 동시에 열고 조작 할 수있는 능력 덕분에 Ashton-Tate는 dBase에"관계형 데이터베이스 "라는 레이블을 붙였습니다. Edgar F. Codd 박사의 관계형 모델에 의해 정의 된 기준을 충족하지는 않았지만 더 정확하게 할 수있었습니다. 관계형 개념의 영향을받는 응용 프로그램 개발 언어 및 통합 탐색 데이터베이스 관리 시스템이라고합니다. " 에서 위키 백과
woliveirajr

3
데이터베이스가 "관리"되어야한다고 생각하지 않습니다.
Aaron Bertrand

답변:


9

이것은 훌륭한 질문이며 훌륭한 답변입니다. 토론에서 누락 된 한 가지는 데이터베이스와 데이터베이스 관리 시스템 (DBMS)의 구별을 탐구하는 대답이라고 생각합니다. Shark가 dictionary.com에서 제공 한 데이터베이스의 정의가 마음에 듭니다. 실제로 데이터베이스와 DBMS를 구분할 필요가 있다고 생각합니다. 데이터베이스는 "편리한 액세스를 위해 구성된 포괄적 인 관련 데이터 모음"입니다. 그 정의의 두 번째 부분 인 "일반적으로 컴퓨터에"는 구별이있는 곳입니다. 컴퓨터에 저장되어 있으면 DBMS에 저장되거나 저장되지 않을 수 있습니다. OS 파일 시스템에 저장 될 수 있습니다. 독점 파일 시스템에 저장 될 수 있습니다. 따라서 나는 카드 카탈로그가 "데이터베이스"라는 FrustratedWithFormsDesigner에 동의합니다 (아마도-포괄적이고 관련이 있습니까? 나중에 더 자세히 설명하십시오). 파일 캐비닛에 저장됩니다. 오늘날의 세계에서 가장 편리한 액세스를 위해 구성된 "관련 데이터의 포괄적 인 모음하는 나는 그것이 Dictionary.com 그 부분을 유감 추가됩니다 상어에 동의 있도록 컴퓨터에 저장됩니다. 나는 "데이터베이스"의 정의로서 절대적으로 정확하다고 생각합니다.

그렇다면 DBMS를 어떻게 정의할까요? 나는 dictionary.com으로 돌아가서 이것을 찾았 습니다 .

"대규모의 구조화 된 영구 데이터 세트를 관리하여 많은 사용자에게 특별 쿼리 기능을 제공하는 프로그램 세트입니다. 이들은 비즈니스 애플리케이션에서 널리 사용됩니다."

정의는 계속되고 꽤 길다. 보안, 데이터 무결성, 트랜잭션 관리, 동시성 제어 및 가장 중요한 데이터 독립성과 같은 DBMS가 제공하는 공통 기능에 대해 설명합니다. DBMS는 데이터가 실제로 저장되는 방식에서 추상화 된 데이터의 외부보기를 제공합니다.

이 정의를 사용하면 DBMS가 데이터 모델을 제공해야한다는 것이 분명하다고 생각되는데 , 이는 사용자에게 표시하기 위해 데이터가 구성되는 방식입니다. 세 가지 공통 모델은 계층 구조 (IMS), 네트워크 (IDMS) 및 관계형 (DB2, Oracle, SQL-Server 등)입니다. OO 모델 (OODBMS)도 있습니다. 오늘날 관계형 모델 만 적용 할 수 있습니다. 다른 모델은 여전히 ​​사용 중이지만 틈새 상황에서만 사용됩니다. DBMS는 언급 된 다른 기능도 제공해야합니다. 이를 종합적으로 데이터 관리 기능이라고합니다.

따라서 데이터 관리 기능을 제공하는 소프트웨어 제품은 DBMS이고,이를 제공하지 않는 제품은 DBMS가 아닙니다 . NoSQL 제품은 DBMS 가 아닙니다 . 즉 하지 가 유용하지 않은, 그리고 말을 하지"데이터베이스"를 저장하지 않는다고 말합니다. DBMS는 정의에서 알 수 있듯이 회계, 급여, 청구, 고객 관계 관리, 판매 등과 같은 비즈니스 응용 프로그램과 관련된 일련의 문제를 해결한다고 생각합니다. DBMS는 아니지만 NoSQL 제품은 해결에 탁월합니다. 기존의 비즈니스 응용 프로그램과 관련이 없지만 현재 엄청난 양의 스토리지 및 대역폭 컴퓨팅 기술로 인해 존재하는 문제 클래스. 이들은 인터넷 검색, 트위터와 같은 온라인 경매, 페이스 북과 같은 애플리케이션입니다. DBMS에는 데이터 관리 기능이 포함되어있어 비즈니스 애플리케이션에 절대적으로 필요하지만 Craig의 스토리지 및 검색을 해결하는 데는 사용하지 않는 데이터 관리 기능이 포함되어 있으므로 DBMS는 이러한 문제를 해결하기에 적합하지 않습니다. s 광고 또는 트위터 피드를 나열합니다 (보통 어쨌든-그것은 또 다른 토론입니다 :-)). 이러한 문제에는 대규모 확장과 매우 ​​빠른 응답이 필요하며, 기능 부풀림이있는 DBMS는 적합하지 않습니다.

데이터 계약 전문가는 계약자가 자신의 구성 도구가 무엇인지 알아야하는 것처럼 데이터를 저장하기위한 이러한 모든 도구와 작업에 적합한 도구를 선택하기 위해 해결해야 할 문제 클래스를 이해해야합니다. 작업에 적합한 도구. 어떤 도구도 그 자체로 좋거나 나쁘지 않습니다. 중요한 문제를 해결하기에 적합하다면 좋습니다.

지금까지 논의에서 간과 될 수있는 데이터베이스와 DBMS의 정의에서 두 가지 다른 주요 차이점을 언급함으로써 결론을 내릴 것입니다. 데이터베이스 정의에는 " 관련 데이터 의 포괄적 인 수집 "이 포함됩니다 . DBMS의 정의는 "큰 구조적 관리d MS Access 또는 다른 관계형 DBMS를 사용하는 것이 좋습니다. 따라서 카드 카탈로그는 포괄적 인 반면 (도서관의 모든 서적에 대한 기록이 있음) 데이터베이스는 책에 대한 정보 만 가지고 있고 저자, 출판사에 대한 완전한 관련 정보는 아니기 때문에 관련이 없습니다. 기타

둘째, DBMS는 "구조화 된"데이터를 저장하는 데 탁월합니다. 그것은 전적으로 구조화 된 유형을 가진 개별 데이터 요소의 정의 된 스키마를 기반으로합니다. 스키마가없는 키 값 저장소 인 NoSQL 제품은 구조화되지 않은 데이터를 저장하는 데 탁월합니다. 따라서 NoSQL 제품은 DBMS의 정의를 충족하지 않습니다. 그러나 해결하려는 문제가 구조화되지 않은 데이터의 저장 (DBMS가 처음 개발 될 때 시도조차하지 않은 것)이고 작성하려는 애플리케이션과 독립적 인 데이터 관리 기능이 필요하지 않은 경우 구조화되지 않은 데이터를 처리 할 때 NoSQL 제품은 완벽한 도구입니다.

이 답변이 여기에 게시 된 다른 훌륭한 답변에 가치를 더하기를 바랍니다. 데이터 관련 문제를 해결하는 데이터베이스 및 기술 클래스에 대한 이해를 넓히는 데 도움이 될 다른 의견이나 토론 요점을 기대합니다.


1
좋은 소식입니다. Craig의 목록에 고려해야 할 레이어가 더 있다고 생각합니다. 저장 및 검색이 DBMS 바로 위에서 수행 될 필요는 없습니다. SQL Server가 사용자 요청에 직접 응답하지 않아도 SQL Server에 저장된 데이터를 확실히 확장 할 수 있습니다. DBMS를 교체 하지 않고도 DBMS를 지원할 수있는 모든 종류의 미들 티어 및 데이터 캐싱 솔루션이 있습니다 . 직전의 작업에서는 웹 서버에서 수십 개의 Express 인스턴스를 사용하여 기본 SQL Server의로드를 줄였습니다. 풀이 아닌 빈번한 푸시였습니다.
Aaron Bertrand

고마워 애런 전통적인 비즈니스 응용 프로그램 이외의 응용 프로그램에 대한 경험이 부족합니다. 예를 들어 데이터 캐싱 솔루션에 대한 브렌트 오자르 (Brent Ozar)의 몇 가지 게시물을 보았지만 사용중인 게시물은 본 적이 없습니다. 이전 경험에 대한 귀하의 모범에 감사드립니다. 도구 상자에 대한 DBMS의 이점을 잃지 않으면 서 스케일 아웃을 가능하게하기 위해 DBMS 위에이 계층 개념을 추가 할 것입니다!
토드 에버렛

따라서 IMS DB DBMS이지만 Cassandra는 그렇지 않습니다. 죄송하지만 정중하게 동의하지 않습니다.
Michael Green

9

데이터베이스의 의미로 이것을 사용하므로 Dictionary.com 을 인용 하겠습니다.

일반적으로 컴퓨터에서 편리하게 액세스 할 수 있도록 구성된 관련 데이터의 포괄적 인 모음.

이 정의에서 본격적인 RDBMS (SQL Server, Oracle 등)에서 기본 플랫 파일에 이르기까지 데이터베이스를 고려할 수 있습니다. 데이터를 저장하면 기술적으로 데이터베이스로 간주 될 수 있습니다.

이제 현대 세계의 대부분의 것들과 마찬가지로 이름의 수용된 의미가 있습니다. 그리고 데이터베이스 의 경우 , 사람마다 다릅니다. 많은 사람들이 데이터베이스를 데이터 시스템에 의해 관리되는 개체로만 생각합니다.

@FrustratedWithFormsDesigner의 의견에 주목할 가치가 있습니다.

"일반적으로 컴퓨터에서"를 제거하면 카드 카탈로그도 계산됩니다.

나는 그 진술에 동의하며, 반드시 데이터베이스가 "컴퓨터"또는 다른 전자 장치에 있어야한다고 생각하지는 않습니다. 카드 카탈로그는 전산화되지 않은 데이터베이스의 완벽한 예입니다.


8

나에게 데이터베이스는 데이터를 저장하고 검색하는 존재입니다. Access 데이터베이스는 실제로 파일 모음의 프론트 엔드에 불과하지만 Access라고합니다. Outlook (적어도 Mac에서는)은 메시지 저장소를 데이터베이스로 호출합니다. 어떤 사람들은 심지어 Excel을 데이터베이스라고 부릅니다 (그러나 그런 종류의 저를 코골이하게합니다-그래서 어딘가에 선이 있습니다).

나는 그 정의가 시간이 지남에 따라 진화 해 왔으며 dictionary.com, wiki, 지난 30 년 동안 다양한 데이터베이스 전문가들의 논문을 비교하면 다양한 정의를 얻을 수있을 것이라고 생각합니다. 그리고 그 정의는 계속 발전 할 것입니다.

관계형이든 아니든 상관없이 귀하 또는 귀하의 응용 프로그램이 데이터를 저장하거나 검색하는 데 사용하는 일종의 데이터 소스에 대해 이야기하는 경우 데이터베이스라고 부르는 데 아무런 문제가 없습니다. 텍스트 파일 인 경우, 눈썹이 약간 생길 수 있지만, 사람들이 그것에 대해 화를내는 한정된 방식으로 정의를 찾아야 할 필요성을 잘 모르겠습니다.

BigTable (또는 NoSQL 또는 hadoop)이 "데이터베이스"라고 제안하기 위해 주변 사람들이 와서 그것을 호출하면 특히 초보자에게 무한한 성능, 불멸의 큰 약속을 줄 것이라고 주장하는 경우가 있습니다. 유니콘. 반면, 실제 구현이 관계형이든 아니든, 또는 일요일 오후에 지루할 때 그러한 것을 스스로 만들 수 있는지 여부에 대한 보증없이 데이터가 저장되고 검색되는 장소라는 것을 의미합니다.

사람들이 관계형 데이터베이스에 대해 이야기하고 행 "레코드"또는 열 "필드"를 호출 할 때 나는 울음을 인정합니다. 그러나 그것이 조금 나빠지는 동안, 나는 화를 내거나 수정하기 위해 나아 가지 않습니다. 요점은 무엇입니까? 100 % 정확하지 않더라도 의미가 무엇인지 이해했습니다.


5

매우 일반적인 데이터와 구조의 모음 일 수 있습니다. 데이터베이스 관리 시스템은 파일 시스템처럼 간단하거나 DNS와 같은 페더 레이 티드 시스템처럼 복잡 할 수 있습니다.

일반적으로 현대의 사용에서 데이터베이스라고 할 때 데이터 저장소와 구조 및 수반되는 데이터베이스 관리 시스템을 모두 의미하며 관계형 데이터베이스의 기초에 대해 많은 이론적 작업이 수행되었으므로 여전히 가장 인기가 있습니다. 종종 데이터베이스를 말할 때 종종 관계형 데이터베이스를 암시합니다.

NoSQL / 비 관계형 데이터베이스가 증가함에 따라 데이터베이스라는 용어는 데이터를 이해하기위한 공유 모델을 가정 할 수 없으므로보다 일반적이고 더 모호 할 수 있습니다.

관계 이론의 토대 이전에 다른 시스템의 데이터 모델링은 시스템마다 다르며 관계형 모델과 같이 공유 원칙이 없었습니다. 계층 적 데이터베이스 및 네트워크 데이터베이스와 같은 다른 종류의 데이터베이스가 사용되었습니다.


2

dBASE Direct / 36 및 dBASE IV를 개발하는 동안 Ashton-Tate에서 dBASE III Plus 지식을 사용하여 작은 프로그램을 코딩하여 dBASE Direct / 36 (IBM System / 36 Mini Computer 인터페이스)의 테스트를 지원하는 작은 프로그램을 코딩했습니다. System / 36 SQL 테이블에 2 진로드 및 호출 명령문을 작성해야했습니다. 각 레코드에서 데이터를 가져 오기 위해 제출시 테이블 이름 및 필드 이름을 변경하면서 동일한 'load'및 'call'명령문을 반복적으로 입력해야했습니다. 쿼리 범위에 따라 여러 레코드 그룹. 데이터베이스 프로그래밍 언어 인 dBASE III Plus를 사용하여 'dbldot.prg'를 만들 수있었습니다. 'dbldot.prg'는 시스템이 텍스트뿐만 아니라 SQL 검색 모드에 있음을 나타 내기 위해 단일 도트 프롬프트를 이중 도트로 변경했습니다. "명령 줄 아래에"

당시 dBASE는 데이터베이스 프로그래밍 언어, 또는보다 정확하게는 데이터 레코드를 조작 할 수있는 프로그램 언어였습니다. 레코드는 개인 LAST_NAME, FIRST_NAME, ADDRESS, CITY, ST, ZIP, PLUS_FOUR, SSN 등과 같이 하나의 개별 항목에 대한 데이터를 포함하는 필드 그룹입니다.이 구조는 나중에 표로 표시되고 행과 열로 구성됩니다. 행은 개별 레코드이고 열은 각 필드 이름에 대한 일련의 레코드의 데이터입니다. 이런 방식으로 사용자는 필드 이름별로 쉽게 정렬하여 CITY, ST, ZIP 등과 같은 특정 공통 필드별로 레코드를 정렬하고 그룹화 할 수 있습니다.

dBASE 언어를 사용하면 사용자 또는 프로그래머가 데이터를 조작하고, 정렬을 수행하고, 테이블을 표시하고, 계산을 수행하고, 계산을 수행 할 수있었습니다 (Y2K는 멀리 떨어져 있지만 입력 한 MM-DD-YYYY 데이터를 정렬하려면 날짜를 YYYYMMDD로 변환해야 함) 이는 DtoC 및 CtoD (날짜-문자, 문자-날짜)로 수행 할 수 있습니다. dBASE 언어가 없으면 데이터 파일은 공통 필드 (열)가있는 일련의 레코드 (행) 일뿐입니다.

관계형 데이터베이스-다른 정보를 포함하지만 하나 이상의 공통 필드를 포함하는 다른 데이터베이스와 하나 이상의 데이터베이스 (테이블)를 상호 참조하는 데 사용되는 용어입니다. 예를 들어, "주소"라는 제목의 데이터베이스에는 "LNAME", "FNAME", "ADDRESS", "CITY," "ST," "ZIP," "SSN"이 포함됩니다. "CHECKING"이라는 제목의 다른 데이터베이스에는 "ACCOUNT_NO", "ROUTING_NO", "CUSTLAST", "CUSTFIRST", "DOB", "SSNO," "CUST_NO"가 포함되어 있습니다. 필드 이름은 다르지만 일부는 서로 연결되어 동일한 데이터베이스의 데이터를 다른 데이터베이스의 데이터와 연결하여 은행 고객에게 명세서를 발송할 수있는 동일한 정보를 포함합니다. 이름과 성 필드 및 SS 번호를 사용하여 데이터와 관련하여 한 데이터베이스에서 고객의 주소와 다른 데이터베이스의 계정 정보를 가져옵니다. 그런 다음, ADDRESS 데이터베이스의 각 개별 고객에 대해 이러한 조치를 수행하기 위해 메일 병합 기능을보다 큰 규모로 수행 할 수 있습니다. 각 고객의 관련 계정 정보를 가져오고, 명세서를 개인 설정하고, 인쇄하고 주소를 지정하여 다음 주소로 넘어갑니다. 데이터베이스에 레코드 또는 고객.

따라서 MS ACCESS와 같은 것은 더 많은 DBMS 일 수 있지만 기본 수준의 dBASE는 프론트 엔드 사용자 인터페이스를 만들고 데이터베이스 간의 모든 데이터 조작을 수행하여 그들 사이의 관계를 만들고 결과 데이터를 반환하는 언어였습니다. 우리는 단지 인간이 사용합니다.

그 이후로 많은 변화가 있었지만 기초는 동일하게 유지됩니다. 데이터는 다양한 데이터 유형의 일련의 필드를 포함하는 레코드에 여전히 포함되어 있으며 하나 이상의 공통 데이터 포인트를 통해 다른 데이터베이스의 데이터와 상호 참조 및 병합되어야 신용 카드를 사용하고 웹에서 계정을 설정할 수 있습니다 Google, Facebook, Twitter ID를 사용하고 구매 내역 등을 추적합니다. 우리의 삶은 일련의 겹치는 관계형 데이터베이스 일 뿐이며, 오늘날 우리 삶의 즐거움과 지속적인 편의를 제공하기 위해 상호 작용하는 모든 비트와 바이트에 대해 생각하지 않고 매일 순회합니다.

1984 년 dBASE II로 시작된 수년간의 소프트웨어 및 하드웨어 테스트에 대해 항상 이해하고있었습니다.


2

Codd의 주요 논문은 대규모 공유 데이터 뱅크를위한 관계형 데이터 모델 이라는 제목이 붙어 있습니다. 그가 "데이터 뱅크"라고 부르는 것을 데이터베이스라고합니다.

그러나 나는 그의 이미지를 좋아한다. 데이터를 안전하게 보관할 수 있다는 것을 알고 데이터에 액세스 할 수있는 권한이 있음을 보여줄 수있는 사람들에게만 제공되는 장소를 의미합니다. 지점을 강탈하면 은행 회사는 소중한 자원을 잃어 버릴 수 없도록 적절한 백업 을 보유하고 있습니다.


1

에서 데이터베이스 디자인 7 에드의 기본. (pg 5),

데이터베이스는 관련 데이터의 모음입니다.

그들은 일반적인 사용이 더 제한적이라고 말합니다.

데이터베이스에는 다음과 같은 암시 적 속성이 있습니다.

  • 데이터베이스는 실제 세계의 일부 측면을 나타내며 때로는 미니 월드 또는 담화의 세계 (UoD)라고도합니다. 미니 월드에 대한 변경 사항이 데이터베이스에 반영됩니다.
  • 데이터베이스는 본질적으로 의미가있는 논리적으로 일관된 데이터 모음입니다. 무작위 데이터 분류는 데이터베이스로 올바르게 참조 될 수 없습니다.
  • 데이터베이스는 특정 목적을 위해 데이터로 설계, 구축 및 채워지며 의도 된 사용자 그룹과 이러한 사용자가 관심을 갖는 일부 사전 응용 프로그램을 가지고 있습니다.

어떤 의미에서든 명시 적으로 "관계형"인 데이터베이스는 없지만, 업계가 특정 유형의 DBA로 포화되어 있고 가장 진보 된 DBMS 소프트웨어가 모두 관계형이기 때문에 종종 가정됩니다. 에서 관계형 데이터베이스 사전

엄밀히 말하면 데이터베이스 값 qv; 이 사전에서 특히 데이터베이스 변수라고하는 것이 더 정확하게 참조되는 데 더 일반적으로 사용됩니다. qv이 사전 전체에서 데이터베이스는 항상 관계형이며, 명시적인 진술은 금지한다고 가정합니다. 참고 : 데이터베이스라는 용어는 물리적으로 저장된 데이터의 수집과 같은 다양한 다른 것을 의미하기 위해 비 관계형 컨텍스트에서도 사용됩니다. 또한 DBMS를 의미하기 위해 너무 자주 사용되지만이 특정 사용법은 더 이상 사용되지 않습니다. (DBMS를 데이터베이스라고 부르면 데이터베이스를 무엇이라고합니까?)

마지막 요점은 다소 중요하며 DBMS / RDBMS와 데이터베이스 자체의 차이점도 좋아합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.