본문 바로가기
DB/MySQL

1장 데이터베이스 개요

by 가므자 2012. 2. 21.

데이터베이스의 특성
① 실시간 접근성
② 계속적인 변화
③ 동시 공유
④ 내용에 의한 참조


예제 학적 테이블(개체 이름)

 

‘김광식’, ‘김정현’, ‘전산과’, ‘수학과’, … → “개체”
{김광식, 김정현, …} → “개체 집합”
예) 학생 개체 : (학번, 주민등록번호, 이름, 학과번호, 주소, 학년)
개체집합: 동일한 속성을 갖는 개체들의 집합
개체는 각 속성의 값으로 표현


데이터베이스의 구성요소
개체, 관계


데이터베이스의 모델의 종류
①계층 데이터 모델
- 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결한
트리 형태의 자료 구조 모델
②망 데이터 모델
- 개체와 개체 관계를
그래프 구조로 연결하는 데이터 모델
③관계 데이터 모델
- 단순한 자료처리에 적합한 모델
- 개체를
테이블로 사용하고 개체 집합들 사이의 관계는 공통 속성으로 연결하는 독립된 형태의 데이터 모델
④객체지향 데이터 모델
- 복잡한 실세계의 정보 시스템을 효율적으로 모델링하고 구현하는데 목적.
- 문자, 그림, 음성,화상 등 멀티미디어 객체와 같은 복잡하고 큰 자료등
⑤객체관계 데이터 모델
- 단순한 자료와 복잡한 자료를 함께 처리할 수 있는 데이터 모델.
- Informix Universal Server(Illustra, Informix)


데이터베이스 관리시스템(DBMS) 중에
관계형 데이터베이스 시스템(RDBMS) 가장 많이 쓴다.



관계형 데이터베이스 시스템(RDBMS)
-MySQL(5.x발표) Oracle, Sybase, Informix, M/S SQL, DB2, dbase.. 상용 제품 경쟁


관계형 모델의 용어
-테이블(tabel)
-열(column)
-행(row)
-무결성 규칙 또는 제한(integrity rule or constraint)
-기본 키(primary key)
-후보 키(candidate key)
-대체 키(alternate key)
-참조 키 또는 외래키(referential key or foreign key)


테이블, 열, 행



무결성의 규칙
테이블의 내용은 무결성의 규칙을 만족해야한다.
예제는 학생의 학번은 음의 값을 가질 수 없다는 것, 서로 다른 학생은 동일한 학번을 가지지 않아야 한다.
매번 테이블이 갱신되면 RDBMS는 새로운 데이터가 적절한 무결성 규칙을 만족하는지 조사해야한다.

데이타베이스내의 오류가 없이 데이타를 일관성있게 유지하는 것을 말한다.
학생 테이블에서 학번을 기록하지 않으면 무결성이 유지되지 않는 것.(학번이 학생을 구분하는 기준이기 때문에.. 학번이 없으면 학생을 구분할 수 없기 때문이다.
또 다른 한편으로 똑같은 학번이 두번 등록된다면 이것도 무결성이 유지되지 않은 것.

- 기본키의 속성을 유지하는 것을 실체 무결성이라고 한다.
두번째로 학생 테이블에 존재하지 않는 학번을 수강정보 테이블에 기록한다면.. 무결성이 유지되지 않는 것. 즉 학생테이블에 존재하지 않는 학번을 수강정보에 기록하면 어떤 학생인지 알 수가 없어 진다. 이건 참조 무결성이라고 한다.
세번째로 영역 무결성이라는 것이 있는데.. 이건 테이블이 갖는 칼럼(열)들의 데이타타입, 길이, 빈값의 허용여부 등을 지키는 것을 말한다.
예를 들어 남녀에는 F, M만을 기록하기로 했는데.. S를 넣거나 나이에 숫자만 넣기로 했는데 'SS'와 같은 데이타가 들어 간다면 무결성이 유지 되지 않은 것

①기본 키
- 테이블의 기본 키는 테이블에서 유일한 행을 구별할 수 있도록 사용되는 테이블의 열이다.
두 개의 서로 다른 행은 기본 키 값으로 동일한 값을 가질 수 없고, 테이블에서 모든 행의 기본 키는 항상 하나의 값을 가지고 있어야한다. NULL 값을 가질 수 없다. 위 테이블에서 lngID 열은 이테이블의 기본 키다.
후보키들 중에서 선택한 키를 의미한다.
위의 학생 테이블에서 학번을 선택할 수도 주민등록 번호를 주키로 선택할 수 있는데.. 데이타 베이스 설계자가 둘 중 하나를 주키로 사용하겠다고 설정을 했을 때.. 설정된 키가 기본키가 되는 것.

②후보 키
- 데이타 베이스내의 여러 속성들 중에 각 튜플(레코드, 행)을 유일하게 식별하기 위해 사용하는 속성들, 즉 기본키로 사용할 수 있는 속성들을 말한다.
예를 들어 학생 테이블이 있다고 가정할때.. 학생 테이블 안에는 학번, 이름, 주민등록번호, 주소, 남녀와 같은 속성들이 존재한다고 가정할 때.. 학번이나 주민등록번호는 수많은 학생이 등록되더라도 하나씩만 등록이 된다. 즉 중복이 없는 유일한 데이타가 됩니다. 이런 주민등록번호나 학번과 같은 속성을 후보키라고 말합니다. 이름이 동일한 학생이 하나도 존재하지 않는다면 이름도 후보키가 될 수 있다.


③대체 키
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 말한다.
이건 간단히 이해가 되실듯..
위에서 학번을 기본키로 선택을 했으면 후보키 중에서 학번을 제외한 주민등록 번호와 같은 속성들을 대체키라고 말한다.

④외래키(Foreign key)
- 테이블과 테이블의 관계를 설정해주는 키로 테이블에 있는한 열로 만들 수 있고, 한 테이블에 여러개의 외래 키가 올 수 있는 반면에 관계를 설정해 주는 부모 키는 다른 테이블의 기본 키여야한다.
관계를 맺고 있는 릴레이션 R1 R2 에서 릴레이션을 참조하고 있는 키를 말한다.

예를 들어 학생 테이블이 있고..
학생의 수강정보를 기록하고 있는 테이블이 있다고 가정할 때
수강정보에는 학번, 과목, 년도, 학기, 학점 과 같은 정보를 기록할 수 있다. 여기서 학번이라는 것은 학생 테이블에 있는 학번을 참조한다고 한다.
즉 학생 테이블에는 학생의 상세정보가.. 수강정보 테이블에는 학생의 여러 정보를 제외하고 학번만 기록하여 필요시에 학생 테이블과 연결(참조)하여 학생 정보를 볼수 있습니다. 이런 관계(Relation)을 가질 때.. 수강정보 테이블의 학번키는 외래키(또는 참조키)라고 한다.



RDBMS 구성 요소들
①RDBMS 커널
RDBMS는 데이터 접근을 통제하기 위해 설계되는 운영체제.
기본적인 기능 : 데이터 저장, 추출, 보안

MySQL과 같은 RDBMS는 권한을 부여받은 사용자의 리스트와 사용자와 연관된 권한을 유지한다.
또한 메모리 캐시와 페이징을 관리하며, 자원의 동시 사용에 대한 록킹을 통제하며, 사용자 요청을 할당한다.

*커널이란 : 컴퓨터 운영체계의 가장 중요한 핵심으로서 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다. 커널은 쉘(shell)과 대비될 수 있는데, 쉘은 운영체계의 가장 바깥부분에 위치하고 있으면서, 사용자 명령어에 대한 처리를 담당한다.

②데이터 사전
RDBMS는 다른 데이터베이스나 파일 시스템과 근본적인 차이점은 데이터를 엑세스하는 방법에 있다.
RDBMS는 더욱더 추상적이고 논리적인 형식보다는 물리적 데이터를 참조 할 수 있다.
개발시 용이함과 유연성을 제공.

데이터 독립성은 바로 데이터 사전으로 인해 가능
데이터 사전은 데이터베이스 내에 존재하는 모든 객체에 대한 메타데이터(데이터 관리상 필요한 작성자, 목적, 저장장소 등 속성에 관한 데이터)를 저장한다.


SQL이란
관계형 데이터베이스 언어
특히 데이터의 삽입, 삭제, 갱신, 질의 그리고 보호 명령문으로 구성됨.
SQL은 비절차적(원하는 데이터만을 명시하고 이 데이터가 어떻게 찾을 것인가는 명시하지 않는 것) 데이터베이스 언어

'DB > MySQL' 카테고리의 다른 글

4.2 SQL 데이터형(data type), NULL  (0) 2012.02.22
4.1 Commit/Rolback, Savepoint/Truncate 작업  (0) 2012.02.22
2.4 MySQL 데이터베이스 관리 틀  (0) 2012.02.22
Mysql 기본 사용법  (0) 2012.02.22
Mysql 설치  (0) 2012.02.22

댓글