728x90

데이터베이스

 : 업무를 수행하는데 필요한 데이터의 체계적인 집합으로 데이터의 중복성과 종속성 문제를 해결하고 데이터의 무결성을 보장하는 서비스. 사용자 간 데이터 공유가 가능하고 다양한 인터페이스를 제공한다.

 

데이터베이스 시스템의 정의

  • 통합 데이터 Integrted Data : 검색의 효율성을 위해 불필요한 데이터를 제거하고 중복이 최소화된 데이터들의 집합
  • 저장 데이터 Stored Data  : 컴퓨터 시스템이 접근할 수 있는 저장 매체에 저장된 데이터이다.
  • 운영 데이터 Operational Data : 조직의 목적을 위해 반드시 필요한 모든 데이터와 데이터들의 관계 집합이다.
  • 공유 데이터 Shared Data : 여러 응용 프로그램들이 공통으로 필요로 하는 데이터를 공유한다.

데이터베이스 시스템의 특징

  • 실시간 접근성 Real Time Accessibility : 사용자의 질의에 대하여 실시간으로 처리하여 응답한다.
  • 계속적인 진화 Continuous Evolution :  새로운 데이터의 생성이나 기존 데이터의 변경, 삭제 등을 통해 항상 최근의 데이터를 정확하게 유지한다.
  • 동시 공유 Concurrent Sharing : 여러 사용자가 동시에 원하는 데이터를 이용할 수 있다.
  • 내용에 의한 참조 Content Reference : 데이터가 저장된 위치가 아닌 사용자가 요구하는 데이터 내용에 따라 데이터를 참조한다.
  • 데이터 논리 독립성 Independence : 응용 프로그램과 데이터베이스를 분리하여 서로의 변경에 영향을 주지 않는다.

스키마

 : 데이터베이스의 구조와 제약조건에 대한 명세를 기술한 것이다. 외부, 개념, 내부의 3단계 논리적 구조를 가진다.

 

1) 외부 스키마

 : 프로그래머나 사용자의 입장에서 본 데이터베이스의 모습을 나타낸 것이다.

 - 일반적으로 View를 통해서 데이터베이스 내용 중 사용자가 필요한 정보만 볼 수 있도록 구현한다.

2) 개념 스키마

 : 모든 응용 프로그램과 사용자들이 필요로 하는 데이터베이스 전체를 정의한 것이다.

 - 데이터에 대한 접근 권한, 보안 정책, 무결성 규칙들이 포함 된다.

 - 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것이다.

3) 내부 스키마

 : 물리적인 저장 장치의 입장에서 본 데이터베이스의 모습을 나타낸 것이다.

 - 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등의 데이터 처리에 대한 제약사항을 정의한다.

 

데이터베이스 관리 시스템 DBMS, DataBase Management System

 : 응용 프로그램을 사용하는 사용자와 데이터베이스 사이에서 데이터를 저장하고 분석하기 위해 상호작용하는 응용 프로그램

 - 데이터 관리의 복잡성을 해결하고 관련된 대부분의 기능을 지원한다.

장점 ) 데이터의 중복을 최소화하고 일관성을 유지한다, 보안을 강화하여 무결성을 유지시킨다.

단점 ) 데이터의 규모가 크고 복잡하여 구축 자체가 어렵다. 훼손된 데이터에 대한 복구가 매우 어렵다.

 

DBMS의 특징 - "무일회보효"

  • 무결성 : 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
  • 일관성 : 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정하게 유지되는 성질
  • 회복성 : 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
  • 보안성 : 노출, 변경 손실로부터 보호되어야 하는 성질
  • 효율성 : 사용자, SW, 시스템 등의 요구 조건을 만족하도록 하는 성질

데이터베이스의 기본 용어

 

DBMS 기본 용어

  • 속성 Attribute : 개체 정보의 특성을 나타내며 파일 시스템에서 필드에 해당된다. DB를 구성하는 가장 작은 단위
  • 도메인 Domain : 하나의 속성에 입력될 수 있는 값들의 집합이다.
  • 튜플 Tuple  : 개체 내에서 하나의 완벽한 정보를 나타낸다. 튜플 사이에는 순서가 없다.
  • 릴레이션 Relation  : 하나 이상의 속성들의 집합으로 이루어진 표
  • 차수 Degree : 릴레이션에서 정의된 속성의 개수
  • 기수 Cardinality : 릴레이션에서 생성된 튜플의 개수
  • 정보의 부재 Null : 값이 비어있다는 것을 명시하며, 숫자 0과 공백 문자가 아니다.

키 (Key)

1) 후보키(Candidate Key) : 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 모두 만족시키는 속성

 - 유일성 : 튜플을 유일하게 구분할 수 있는 성질

 - 최소성 : 가장 적은 수의 속성으로 구성되는 성질

 ex ) 학생 테이블이 있다면 주민번호, 학번, 이름, 연락처 속성이 후보키이다.

2) 기본키(Primary Key) : 후보키들 중 튜플의 식별을 위해 지정된 키이다. 중복이나 Null 값을 가질 수 없다.

3) 대체키(Alternate Key) : 기본키로 지정된 키를 제외한 후보키이다.

4) 슈퍼키(Super Key) : 튜플을 식별하기 위해 두 개 이상의 속성들의 집합으로 이루어진 키

 - 유일성은 만족시키지만, 최소성은 만족시키지 못한다.

5) 외래키(Foreign Key) : 관계된 다른 릴레이션의 기본키를 참조하는 속성이다.

 - 외래키는 제약사항에 따라 중복과 Null 값이 허용된다.

 

무결성(Integrity) 제약사항

  • 도메인 무결성 : 하나의 속성에 입력되는 값이 지정된 도메인의 범위를 벗어나지 않는 성질이다.
  • 개체 무결성 : 기본키로 지정된 속성은 중복 값과 Null 값이 있어서는 안 된다
  • 참조 무결성 : 외래키로 지정된 속성은 참조하는 기본키에 존재하지 않는 값을 입력할 수 없다는 성질

논리 데이터 모델링 

개체

 : 현실 세계의 식별 가능한 대상을 추상화하여 표현하는 단위

속성

 : 개체 정보의 특성을 나타내며 파일 시스템에서 필드에 해당된다. 개체를 구성하는 가장 작은 단위

식별자

 : 개체 타입에서 각각의 개체를 유일하게 식별할 수 있는 결정자의 역할

 - 모든 개체 타입에는 반드시 하나 이상의 식별자가 존재해야 한다.

 - 식별자가 지정되면 변경할 수 없으며, 주 식별자의 경우 반드시 값이 존재해야 한다.

 

데이터 모델링의 정의

 : 현실 세계의 데이터 구조를 디지털 세계의 데이터 구조로 변환하는 과정이다. 개체와 관계를 중심으로 분석하여 명확하고 체계적으로 설계한다.

  • 논리적 구조 : 논리적으로 표현된 데이터 구조
  • 연산 : 데이터 구조에서 삽입, 삭제, 변경하는 기능
  • 제약 조건 : 데이터 구조에서 허용할 수 있는 관계를 명세

절차 ) 개념적 설계 > 논리적 설계 > 물리적 설계

  •  개념적 설계 : 정보 내용에 대한 요구 조건을 만족시키면서 쉽게 이해할 수 있는 정보 구조를 설계하는 단계. E-R 모델로 표현하는 방법이 대표적이다. 개념적 스키마 모델링, 트랜잭션 모델링
  • 논리적 설계 : 개념 데이터 모델을 상세화 하여 논리적인 데이터 집합, 관리 항목, 관계 등을 정의하는 단계이다. DBMS에 맞는 데이터베이스 스키마 및 트랜잭션 인터페이스를 설계한다.
  • 물리적 설계 : 논리 데이터 모델을 DBMS의 특성 및 성능을 최대한 고려하여 구체화시키는 단계이다. 레코드 양식, 데이터 구조, 응답 시간, 저장 공간 등을 설계한다.

E-R 다이어그램

: 1976년에 피터 첸(Peter Chen)에 의해서 최초로 제안되었다. 개체와 실체 간의 관계를 그림 형태로 묘사한 것이다.

 - 논리적인 그림이기에 시스템에 아무런 영향을 받지 않는다.

 - 기본키, 외래 키, 성능, 시스템 구조 등 물리적 시스템 환경은 고려하지 않는다.

 

관계 스키마

 : 현실 세계를 데이터베이스에 정확하게 표현하기 위한 논리적 구조를 결정한다.

 - E-R 모델에 기초하여 릴레이션을 구성한다.

 - 중복 및 불필요한 데이터가 발생하지 않도록 설계한다.

 

이상 현상 Anomaly

 : 잘못된 스키마 설계로 인해 릴레이션에 예기치 못한 현상이 발생하는 것을 의미한다

  • 삭제 이상 : 특정 튜플을 삭제할 때, 관련된 정보도 함께 삭제하지 않으면 삭제가 불가능한 상태
  • 삽입 이상 : 특정 튜플을 삽입할 때, 관련되지 않은 정보도 함께 삽입하지 않으면 삽입이 불가능한 상태
  • 갱신 이상 : 특정 데이터를 갱신할 때, 데이터의 불일치가 발생하는 상태

정규화

 함수 종속 

 : 관계형 모델을 설계할 때 가장 중요한 요소로서 개체 내에 존재하는 속성 간의 종속성을 의미한다.

결정자 : 관계된 속성의 종속성을 규명할 때 기준이 되는 속성이다.

종속자 : 결정자에 의해 값이 정해지는 속성이다.

 

관계 대수

 : 연산자 또는 연산 규칙을 사용하여 기술하는 절차식 언어

 - 주어진 관계로부터 원하는 데이터와 그 데이터를 유도하는 연산자이다.

 

일반 집합 연산자

1) 합집합(Union) : 두 릴레이션을 합치며 중복된 내용은 하나로만 출력된다.

2) 교집합(Intersection) : 두 릴레이션 사이에 공통 된 부분을 추출할 때 사용한다.

3) 차집합(Difference) : 두 릴레이션 중 공통된 부분을 제거하고 추출할 때 사용한다.

4) 곱집합(Cartesian Product) : 두 릴레이션 튜플을 합쳐서 순서쌍의 집합을 만드는 연산이다.

 

순수 관계 연신자

1) Select  : σ (조건)(R)

  : 하나의 릴레이션에서 조건에 맞는 튜플(수평적)을 분리하는 연산 

2) Project  : π (속성 리스트)(R) 

  : 하나의 릴레이션에서 조건에 맞는 속성(수직적)을 분리하는 연산이다.

3) Join : (R)⋈<조건>(S)

 : R과 S속성이 포함 된 조건을 성립하는 요소

4) Natural Join  : (R)⋈N(S)

 : 두 릴레이션 공통으로 포함되는 속성값이 동일한 요소

5) Division : R ÷ S

 : 릴레이션 R에서 S의 속성의 데이터와 일치하는 요소중 S의 속성을 제외한 요소


정규화

: 데이터 모델링의 단계 중 가장 중요한 단계로써 논리 데이터 모델링을 상세화 하는 단계

 - 정확성, 일치성, 단순성 ,비중복성, 안정성이 보장된다.

 - 중복되는 튜플이 없어 효과적인 데이터 표현 및 저장이 가능하다

 - 비교적 간단한 연산자로 효과적인 연산이 가능하도록 구성한다

 

제1 정규형 : 도메인이 원자 값만 가지도록 분해한다.

제2 정규형 : 부분 함수 종속을 제거한다. [ 부분 함수 종속 = 기본키만으로는 해당 데이터를 식별할 수 없는 종속관계 ]

제3 정규형 : 이행적 함수 종속을 제거한다.

보이스 코드 정규형 : 결정자가 후보 키가 아닌 종속을 제거한다. [ 후보키 = 결정자가 유일성과 최소성을 만족시키는 키]

제4 정규형 : 다치 종속을 제거한다.

제5 정규형 : 후보키를 통하지 않은 조인 종속을 제거한다.

728x90

+ Recent posts