우선 데이터베이스를 알아보기 전에 데이터에 대해 알아보려 한다. ‘장어진’이라는 사람의 데이터에는 나이 23세, 학과 컴퓨터공학과, 학교 한밭대학교 등이 있다. 이미지파일, pdf 파일 모두 데이터에 해당할 수도 있다. 다음으로 데이터베이스란 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합을 말한다. 논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 꾀한 것이다. 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체다.
데이터베이스의 대표적인 특성은 5개가 있는데 실시간 접근성, 지속적인 변화, 동시 공유, 내용에 대한 참조, 데이터 논리적 독립성이 그 특징이다. 많은 장점이 존재하는데 데이터 중복 최소화, 데이터 공유, 일관성, 무결성, 보안성 유지, 최신의 데이터 유지, 표준화 기능, 논리적, 물리적 독립성, 쉬운 데이터 접근, 저장공간 절약 등이 있다. 그러나 장점만의 존재하지는 않는다. 데이터베이스 분야의 전문가가 필요하며, 많은 비용 부담, 백업과 복구가 어렵다는 점, 시스템의 복잡하고 과부하 발생 가능성도 존재한다.
그럼 데이터베이스 관리 시스템이란 무엇일까. 데이터베이스 관리 시스템 즉 DBMS는 사용자가 데이터베이스에 엑세스할 수 있도록 하는 프로그램 모음이다. 데이터 조작 및 데이터 표현 지원, 다른 사용자의 데이터베이스 엑세스를 제어하는데 도움이 된다. 몇 가지 예시를 들어보겠다. 온라인 전화번호부는 데이터베이스 관리 시스템을 사용하여 데이터를 저장한다. 사람들의 전화 번호 및 기타 연락처 정보 등이 해당된다.
1950년대에 데이터베이스라는 용어가 미국에서 처음 사용되었으며, 원래는 군비의 집중적 효율적 관리를 위해 컴퓨터를 활용한 도서관 개념을 개발했고 이를 ‘데이터의 기지’라는 뜻의 데이터베이스로 말했다. 이후 1965년 시스템 디벨로프사가 2차로 개최한 컴퓨터 중심 데이터베이스 시스템 이라는 심포지엄에서 처음 사용하였다. 주가 되는 2개의 내비게이셔닐 데이터 모델은 IBM의 IMS 시스템의 전형적 본보기가 되는 계층형 모델, 그리고 IDMS와 같은 수많은 제품들에 구현된 CODASYL모델(네트워크 모델)이다.
DBMS에는 크게 네가지 유형이 있다. 첫 번째로 Hierarchical 계층적이 있다. 이 유형의 DBMS는 부모-자식 관계를 사용하여 데이터를 저장한다. 현재 이런 유형의 DBMS는 거의 사용되지 않는다. 레코드를 나타내는 노드와 필드를 나타내는 분기 있는 트리와 같다. windows XP에서 사용되는 windows 레지스트리는 계층적 데이터베이스의 예이다. 구성 설정은 노드가 있는 트리구조로 저장된다. 두 번째로 Network DBMS는 다수 대 다수 관계를 지원하므로 일반적으로 복잡한 데이터베이스구조가 발생한다. 예시로는 RdM서버가 있다. 세 번째로 Relational DBMS, 관계형 DBMS가 있는데 이것은 관계라는 테이블 형식으로 데이터베이스 관계를 정의한다. network와 달리 다수 대 다수 관계를 지원하지 않는다. 일반적으로 지원할 수 있는 유형이 정해져있다. 가장 널리 사용되는 DBMS 유형이다. 예시로 mysQl oracle 및 Microsoft SQL서버 등이 있다. 마지막으로 Object Oriented Relation DBMS가 있다. 객체 지향 관계형 DBMS인데 이것은 새로운 데이터 유형의 저장을 지원한다. 객체 형태로 저장될 개체에는 성별 또는 연령과 같은 속성이 있다. 데이터로 수행할 작업을 정의하는 방법 예시로 Postgresql이 있다.
그렇다면 SQL은? 구조적 쿼리 언어(Structured Query Language)의 약자로 기본적으로 관계형 데이터베이스를 처리하는 기본 언어이다. 검색을 삽입하는 데 효과적으로 사용이 가능하다.
결론적으로 DBMS는 데이터베이스 관리 시스템의 표준이며 네 가지 유형의 DBMS가 있다. 그 중 가장 많이 사용되는 것이 관계형 모델이다. SQL은 데이터베이스를 쿼리하는데 사용되는 표준 언어이다.
'학부 전공 > DB' 카테고리의 다른 글
A First Course in Database Systems 연습문제 2장 (0) | 2021.06.23 |
---|---|
What is Database & 트랜잭션의 ACID 속성 (0) | 2021.06.23 |
SQL의 시스템 관점(1 of 2) - 2 (0) | 2021.06.19 |
SQL의 시스템 관점(1 of 2) -1 (0) | 2021.06.19 |
SQL - 제약과 트리거 2 (0) | 2021.06.19 |