데이터베이스 개념, 스키마, DB언어, 관계형 데이터베이스의 종류, 키의 개념, DB설계, 개체관계도[ERD]
데이터베이스 정의
- 데이터베이스는 특정 조직의 기능을 수행하는 데 필요한 상호 관련 된 데이터들의 모임.
데이터베이스 구성요소
- 데이터베이스를 구성하는 요소로는 스키마, 데이터베이스 언어, 데이터베이스를 구성하는 자료, 디스크 장치와 컴퓨터 본체를 포함한 하드웨어, 데이터베이스를 운영하는 데이터베이스 관리 시스템, 데이터베이스의 이용에 관련된 데이터베이스 사용자, 그리고 데이터베이스 컴퓨터가 있다.
데이터베이스 특징
- 실시간접근성, 계속적인 변화, 동시공유, 내용에 의한 참조
데이터베이스 장점
- 데이터의 중복성 최소화
- 데이터의 공유
- 데이터의 일관성 유지
- 데이터의 무결성 유지 (데이터의 정확성)
- 데이터의 보안성 유지
- 데이터의 논리적, 물리적 독립성
데이터베이스 단점
- 데이터베이스 전문가의 부족
- 전산화 비용 증가
- 데이터 유실시 파일 회복이 어려움
- 시스템의 복잡화
- 처리 속도가 느림
스키마 : 데이터베이스 관리 시스템에서 데이터 구조와 그 표현법의 기술을 수용한 파일
- 외부 스키마 : 일반 사용자나 응용 프로그래머의 관점( 접근 )에서 정의
- 개념 스키마 (데이터베이스의 논리적 구조) : 기관이나 조직체의 관점에서 본 스키마, DB관리자(DBA)에 의해 만들어짐 (접근권한, 보안장치, 무결성 규칙 정의)
- 내부 스키마(데이터베이스의 물리적 구조[저장구조]) : 시스템 프로그래머나 시스템 설계자의 관점에서 데이터의 전체 구조를 정의
무결성(Integrity) : 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미한다.
DBMS[Data Base Management System] 데이터베이스 관리 시스템
- 데이터베이스 관리 프로그램(시스템 소프트 웨어 소프트웨어), 데이터 조작, 저장, 검색, 보안 및 통합을 제어하는 프로그램
DB언어(SQL: 표준관계형 데이터 베이스 언어이며, 관계 대수와 관계 해석을 기초로한 혼합 데이터언어)
DLL : 데이터 정의어, DML : 조작 기능, DCL : 제어기능
DLL 데이터 정의어 ( 테이블 ) : 데이터베이스를 생성하거나 수정하고 삭제하는데 사용되는 언어이다. 데이터베이스 관리자( DBA )나 데이터베이스 설계자가 사용한다.
Create table : 데이터베이스를 생성
alter table : 데이터베이스의 구조변경(수정)
Drop table : 데이터베이스 삭제(Restricted : 다른테이블을 참조 중이면 삭제 불가 Cascade : 다른 테이블을 참조 중이면 삭제 가능)
DML 데이터 조작어 ( 레코드 ) : 사용자가 응용프로그램을 통하여 데이터베이스에 저장된 데이터를 실질적으로 처리하는데 사용되는 언어이다. 데이터 처리는 데이터의 검색, 삽입, 삭제, 갱신, 변경등을 말한다. 사용자와 데이터베이스 관리 시스템간의 인터페이스(사용환경)를 제공한다.
Select : 검색 Insert : 삽입
Delete : 삭제 Update : 갱신, 수정
DCL 데이터 제어어 : 데이터 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의하는 데 사용되는 언어이다. 데이터베이스 관리자( DBA )가 데이터 관리를 목적으로 사용한다.
Commit : 연산의 정상완료
RollBack : 연산의 비정상완료
Grant : 권한부여
Revoke : 권한취소
관계형 데이터베이스
- 관계형 데이터 베이스는 2차원 표형태로 되어 있는데 이것을 테이블이라고 부른다. ACCESS(*.mdb)가 관계형 데이터베이스의 종류 중 하나이다. 관계형 데이터베이스에서는 속성(열)을 어트리뷰트(Attribute)라고 하며 릴레이션(Relation)= 테이블의 행을 튜플(Tuple)다. 그리고 어트리뷰트의 수를 디그리(차수)라고 하고 튜플수는 카디널러티라고 한다. 하나의 속성(어트리뷰트)에 포함된 원자값을 도메인이라고 한다.
관계형 데이터베이스 종류
계층형DB : 트리구조, 부모-자식 관계(연쇄 삭제 가능)
망(네트워크)DB : 그래프구조, 오너 - 멤버 관계
표현단위 크기비교
테이블 > 레코드(튜플) > 필드(속성)
키의 개념
키 : 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
후보키 : 테이블을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 기본키로 사용할수 있는 속성
기본키 : 후보키 중에서 선택한 주키, 한 릴레이션에서 특정 레코드를 유일하게 구별할 수 있는 속성
? Null값( 모르는 값 또는 적용할 수 없는 값 )으로 둘수 없다. 개체 무결성 : 기본키로 정의된 필드
(속성)에는 동일한 값이 중복되어 저장될 수 없다.
?
?외래키 : 관계를 맺고 있는 테이블 R1, R2에서 테이블 R1이 참조하고 있는 테이블 R2의 기본키와 같은 R1
의 속성을 외래키라고 한다. 즉 다른 테이블의 기본키를 참조하는 속성, 또는 속성들의 집합.
대체키 : 후보키 중 기본키를 제외한 나머지 속성을 말한다.
데이터베이스 설계
?
?요구조건분석(사용자의 용도 파악) → 요구명세서 작성 → 개념적 설계(추상적 개념) → ER도형(ERD:개체관계도) → 논리적 설계(DBMS 논리적 구조 변화) → 논리 스키마 → 물리적 설계(물리적 저장장치, 저장및 접근방법 설계) → 물리 스키마 → DB구현
?
?ER 모델(Entity Relationship Model) : 대표적인 개념적 데이터 모델로서 개체, 속성, 관계 등에 대하여 용이하게 표현할 수 있는 ER 도형을 정의
정규화
테이블 조작시 애트리뷰트들 간의 종속성 및 중복성으로 인해 예기치 못한 곤란한 현상이 발생하는데, 이를 이상(Anomaly)이라고 한다. 정규화란 이 이상현상(삽입이상:삽입시 원하지 않는 데이터도 삽입, 삭제이상: 삭제시 원하지 않는 데이터도 삭제, 갱신이상: 일부 튜플(행)만 갱신이 되어 버리면 정보의 불일치성 발생)이 발생하지 않도록 중복성 및 종속성을 배제하는 원칙을 배제하는 원칙을 공식화 한 이론이다.
?
데이터베이스의 개념적 설계 단계와 논리적 설계 단계에서 수행된다. 속성 수가 적은 릴레이션(테이블)으로 분할?(중복성을 배제하기 위함)하는 과정이다. 릴레이션(테이블)의 속성들 사이의 종속성 개념에 기반을 두고 이들 종속성을 제거 하는 과정이라고 할 수 있다.
정규화 종류 나열
비정규릴레이션(비정규테이블) → 1NF → 2NF → 3NF → BCNF → 4NF → 5NF
개체 관계도[ERD]
개체와 개체간의 관계를 기본 요소로 하여 현실세계를 개념적인 논리 데이터로 표현하는 방법. 개념적인 것을 논리적으로 표현.
실세계 데이터에 관해 일반 사용자, 프로그래머, 관리자 등의 서로 다른 인식을 하나로 통합하기 위해 설계한다. 개체(Entity:네모박스모양), 관계(Relationship:마름모 모양), 속성(Attribute: 타원형모양), 키속성(타원형모양에 밑줄) 등으로 구성된다.














