데이터베이스(Data Base) 개념

데이터베이스의 정의

데이터베이스란 어느 한 조직에서 업무 처리를 위해 다수의 응용시스템 혹은 다수의 사용자들이 공용으로 사용하기 위해 통합, 저장된 데이터의 집합을 말한다.

  • 통합된 데이터(Integrated Data) : 하나의 주제에 따라 중복을 최소화한 데이터의 집합.
  • 저장된 데이터(Stored Data) : 사용자나 응용시스템이 필요시 언제든지 이용할 수 있도록 저장된 데이터의 집합.
  • 공용 데이터(Shared Data) : 여러 사용자와 다수의 응용 시스템이 공유할 수 있도록 만든 데이터의 집합.
  • 운영 데이터(Operational Data) : 중복을 최소화하고 여러 사람이 공유함에 있어 문제가 발생하지 않도록 관리를 필요로 하는 데이터로 이용가치가 잇는 데이터의 집합.

데이터베이스의 특징

  • 계속적인 변화(진화)(Continuous Evolution) : 항상 최신 정보를 유지할 수 있도록 삽입, 삭제, 갱신이 이루어짐.
  • 동시 공유(Concurrent Sharing) : 여러 사용자가 동시에 접근하여 이용.
  • 실시간 접근성(Real-Time Accessibility) : 질의(Query)에 대해 실시간 처리 및 응답.
  • 내용에 의한 참조(Contents Reference) : 데이터의 물리적 주소나 위치에 의하지 않고 사용자가 요구하는 데이터 내용으로 검색.
  • 데이터 중복의 최소화(Redundancy Minimize) : 동일 데이터의 중복성을 최소화해야함.

데이터베이스의 구조(스키마)

스키마(Schema)는 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술, 정의한 것을 말하며 스킴(Scheme)이라고도 한다.

스키마의 구조 http://www.databaser.net/moniwiki/wiki.php/3%EB%8B%A8%EA%B3%84%EC%8A%A4%ED%82%A4%EB%A7%88%EA%B5%AC%EC%A1%B0
  • 외부 스키마(External Schema) : 전체 데이터 중 사용자가 사용하는 한 부분에서 본 논리적 구조. 서브 스키마.
  • 개념 스키마(Conceptual Schema) : 논리적 관점(사용자 관점)에서 본 전체적인 데이터 구조.
  • 내부 스키마(Internal Schema) : 물리적 저장 장치 관점(기계 관점)에서 본 데이터베이스의 물리적 구조.

데이터베이스 관리자(DBA : DataBase Administrator)와 사용자

데이터베이스 시스템과 관련된 모든 자원에 대해 기획과 통제를 하며, 데이터베이스 언어를 이용해 DBMS를 거쳐 데이터베이스 시스템의 전체적인 관리 운영에 책임을 지는 사람이나 집단을 DBA라고 한다.

이러한 관리자와는 대비되는 개념으로 데이터베이스를 사용하는 집단을 데이터베이스 사용자라 하며, 응용 프로그래머(Application Programmer : DB내용을 일반사용자가 사용할 수 있도록 응용프로그램을 개발하는 사람), 일반사용자(End User : DB의 내용을 실제 사용하는 사람이나 집단), 데이터 관리자(DA : Data Administrator, 데이터의 정의와 체계화, 감독 및 보안 업무를 담당)로 구분한다.

DBA와 DA를 구분하자면 DB관점에서, DA는 데이터 관점에서 업무를 수행한다.
( https://kaonsoft.tistory.com/23 )

데이터베이스의 설계

데이터베이스의 스키마를 정의하고 이에 따라 데이터베이스를 구현하기 하기 위한 전반적인 과정을 말한다.

데이터베이스 모델링 https://mangkyu.tistory.com/27
  1. 요구사항 분석 : 데이터베이스 정의, 요구사항에 따른 명세서(Specification)작성.
  2. 설계 : 개념적(Conceptual), 논리적(Logical), 물리적(Physical)설계.
  3. 구현 : 실제 데이터베이스 만드는 과정. 간결, 명료, 목적 일치, 유지 보수 용이.
  4. 운영 및 개선(유지보수) : 문제점과 개선점 파악.

정규화(Normalization)

정규화 http://mi.cau.ac.kr/teaching/lecture_db_design/W10F.pdf

정규화란 논리적 설계 단계에서 발생할 수 있는 종속으로 인한 이상(Anomaly)현상의 문제점을 해결하기 위해, 속성들 간의 종속 관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정을 말한다.

정규화된 결과를 정규형(Normal Form)이라고 하며 제1정규형, 제2정규형, 제3정규형, BCNF, 제4정규형, 제5정규형 등이 있다.

정규화 과정 https://slidesplayer.org/slide/11674712/

제1정규형(1NF)

모든 도메인이 원자값(Atomic Value)만으로 구성되도록 하는 정규형. 모든 도메인이 각각의 튜플로 구성되도록 분해하는 과정.

제2정규형(2NF)

1NF를 만족한 상태에서 릴레이션을 구성하는 모든 속성이 기본키에 완전 함수 종속이 되도록 분해(부분 함수 종속을 제거)하는 과정.

제3정규형(3NF)

2NF를 만족하면서 릴레이션을 구성하는 속성들 간에 이행적 함수 종속관계(A->B->C)를 분해하여 비이행적 함수종속이 되도록 하는 과정. 각 테이블이 기본키에 완전 함수 종속 관계로 유지.

보이스-코드 정규형(BCNF : Boyce-Codd Normal Form)

3NF를 만족하면서 릴레이션에서 모든 결정자가 후보키가 되도록 하는 과정. 결정자가 후보키가 아닌 경우 분해하는 과정.

제4정규형(4NF)

릴레이션에서 다치 종속(MVD : Multivalued Dependency)관계가 성립되는 경우 분해하는 정규형. 다치 종속은 함수 종속과 달리 하나의 속성값이 대응되는 속성의 집합(여러개의 속성값)을 결정하는 종속관계를 말하며, 릴레이션의 속성이 3개 이상일때 존재한다.

제5정규형(5NF)

릴레이션에 존재하는 조인종속(Join Dependency)이 후보키를 통해서만 성립이 되도록 하는 정규형. 조인 종속은 원래의 릴레이션을 분해한 뒤 자연 조인한 결과가 원래의 릴레이션과 같은 결과가 나오는 종속성을 말한다

정규형 http://mi.cau.ac.kr/teaching/lecture_db_design/W10F.pdf