관계 데이터 모델 : 현재 많이 사용되는 관계 데이터 모델 DBMS로는 Oracle, SQL Server, MySQL, PostgreSQL, 모바일용 SQLite 등이 존재. 데이터를 2차원 테이블 형태인 릴레이션으로 표현하며 릴레이션에 대한 제약조건과 관계 연산을 위한 관계 대수 정의.
제약조건 : 각 릴레이션에 저장된 데이터 값이 가져야하는 제약.
관계 연산 : 릴레이션을 다루는 연산 규칙.
관계 데이터베이스 시스템 : 관계 데이터 모델을 컴퓨터 시스템에 구현한 것으로 관계 데이터 모델에 기초하여 SQL을 기반으로 구현됨.
릴레이션 : 수학의 집합에서 나온 개념. 관계 데이터 모델의 가장 핵심적인 용어로 행과 열로 구성된 테이블을 말함. 릴레이션과 테이블은 같은 의미로 릴레이션은 주로 구조를 강조하는 의미, 테이블은 데이터를 강조하는 의미로 쓰임. 수학적 의미의 릴레이션은 카티전 프로덕트의 부분집합으로 정의함.
릴레이션 스키마 : 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조 정의. '릴레이션 이름(속성1, 속성2, 속성3, ..)'과 같이 표현.
속성 : 릴레이션 스키마의 열.
도메인 : 속성이 가질 수 있는 값의 집합.
차수 : 속성의 개수.
릴레이션 인스턴스 : 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합을 의미.
투플 : 릴레이션의 한 행. 릴레이션 내의 모든 투플들은 서로 중복 금지.
카디날리티 : 투플의 수.
릴레이션의 특징 : 단일 속성 값, 서로 다른 이름의 속성, 하나의 속성의 값은 같은 도메인 값을 가짐, 중복된 투플 금지, 속성의 순서나 투플의 순서와 무관.
키 : 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합. 키가 되는 속성은 반드시 값이 달라서 투플들을 서로 구별. 각 릴레이션의 투플을 유일하게 식별하는 장치이며 동시에 각 릴레이션 간의 관계를 말해주는 연결고리.
슈퍼키 : 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성 집합으로 투플을 유일하게 식별할 수 있는 값이면 모두 슈퍼키가 됨.
후보키 : 투플을 유일하게 식별할 수 있는 속성의 최소 집합.
복합키 : 2개 이상의 속성으로 이루어진 키.
기본키 : 릴레이션의 특성을 반영하여 후보키 중 하나를 선정하여 대표로 삼는 키. 투플을 식별할 수 있는 고유한 값을 갖고, NULL 값은 금지 등 기본키 제약조건이 존재.
대리키 : 일련번호와 같은 가상의 속성으로 만든 기본키.
대체키 : 기본키로 선정되지 않은 후보키.
외래키 : 다른 릴레이션의 기본키를 참조하는 속성. 관계 데이터 모델의 특징인 릴레이션 간의 관계를 표현. 외래키 제약조건이 존재. 여기서 꼭 다른 릴레이션의 기본키를 말하는 것이 아니며, 자기 자신의 기본키를 참조할 수 있음.
데이터 무결성 : 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것.
도메인 무결성 제약조건 : 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만을 가져야 한다는 조건. 프로그래밍 언어의 변수형 선언과 개념이 유사함.
개체 무결성 제약조건 : 기본키는 NULL 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건.
참조 무결성 제약조건 : 일반적으로 참조되는(제공하는) 릴레이션을 부모 릴레이션, 참조하는(제공받는) 릴레이션을 자식 릴레이션이라고 함. 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다는 것. 예를 들어 부모 릴레이션의 삭제는 자식 릴레이션에도 영향을 미치므로 제약조건 선언 시 자식 릴레이션에 RESTRICTED, CASCADE, DEFAULT, NULL과 같은 옵션을 지정.
고유성 제약조건 : 키 속성의 모든 값들은 서로 같은 값이 없어야 한다는 것.
관계대수 : 어떤 데이터를 어떻게 찾는지에 대한 처리 절차를 명시하는 절차적인 언어이며, DBMS 내부의 처리 언어로 사용. 릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어. 결과적으로 릴레이션 간 연산을 통해 결과 릴레이션을 찾는 절차를 기술한 언어.
관계대수식 : 관계대수 연산을 수행하기 위한 식으로 적용 순서는 수학의 연산과 동일하여 괄호 안의 식이 우선하며 왼쪽에서 오른쪽으로 진행됨. 관계대수식의 결과는 릴레이션으로 반환되며, 반환된 릴레이션은 릴레이션의 모든 특징을 따름. 실제로는 하나의 연산만을 단독으로 사용하는 경우는 드물고 의미 있는 결과를 반환하기 위해 프로젝션과 셀렉션 연산을 조합해서 사용. 복합 연산과정을 거치는 경우 중간 집합이 복잡해지면 실제 DBMS 처리시 성능이 저하됨에 유의.
관계해석 : 어떤 데이터를 찾는지만 명시하는 선언적인 언어로 관계대수와 함께 관계 DBMS의 표준 언어인 SQL의 이론적인 기반을 제공.
관계대수 연산자 : 릴레이션 연산에 사용되는 기호. 순수 관계연산과 일반 집합연산으로 나뉨.
순수 관계연산 : 셀렉션, 프로젝션, 조인, 디비전, 개명.
일반 집합연산 : 합집합, 교집합, 차집합, 카티전 프로덕트.
단항 연산자 : 연산자 중 피연산자의 개수가 한 개인 연산자로 연산자 <조건> 릴레이션의 형태.
이항 연산자 : 피연산자의 개수가 두 개인 연산자로 릴레이션1 연산자 <조건> 릴레이션2의 형태.
셀렉션 : 하나의 릴레이션을 대상으로 하는 단항 연산자로 릴레이션의 투플을 추출.
프로젝션 : 릴리이션의 속성을 추출하기 위한 연산으로 단항 연산자.
합병가능 : 집합 연산이 가능하기 위한 조건으로 두 릴레이션의 속성 수가 같고 순서도 같으며 각각 동일한 도메인으로 대응되는 경우.
합집합 : 두 개의 릴레이션을 합하여 하나의 릴레이션을 반환. 이때 중복된 투플은 제거.
교집합 : 두 릴레이션이 공통으로 가지는 투플을 반환.
차집합 : 첫 번째 릴레이션에는 속하고 두 번째 릴레이션에는 속하지 않는 투플 반환.
카티전 프로덕트 : 두 릴레이션을 연결시켜 하나로 합칠 때 사용. 결과 릴레이션은 첫 번째 릴레이션의 오른쪽에 두 번째 릴레이션의 모든 투플을 순서대로 배열. 결과 릴레이션의 차수는 두 릴레이션의 차수를 더한 것과 같고, 카디널리티는 두 릴레이션의 카디널리티의 곱과 같음.
조인 : 두 릴레이션의 공통 속성을 기준으로 속성 값이 같은 투플을 결합. 즉 두 릴레이션을 카티전 프로덕트 연산을 한 후 셀렉션 연산을 한 것. 두 릴레이션의 조인에 참여하는 속성의 도메인이 동일해야 함. 기본 조인 연산과 확장된 조인 연산으로 구분.
기본 조인 연산 : 세타조인, 동등조인, 자연조인이 존재.
확장된 조인 연산 : 세미조인, 외부조인.
세타조인 : 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 투플만 반환. 여기서 말하는 조건이란 {=, ≠, ≤, ≥, <, >} 중 하나.
동등조인 : 세타조인에서 = 연산자를 사용한 조인. 보통 조인 연산이라고 하면 동등조인을 지칭. 첫 번째 릴레이션의 속성부터 시작하여 순서대로 나타냄.
자연조인 : 동등조인에서 조인에 참여한 속성이 두 번 나오지 않도록 두 번째 속성을 제거한 결과 반환. 결과 릴레이션의 속성은 첫 번째 릴레이션의 속성부터 순서대로 나오며 중복되는 속성은 제거함.
외부조인 : 자연조인 시 조인에 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL 값을 채워서 반환.
세미조인 : 자연조인을 한 후 두 릴레이션 중 한쪽 릴레이션의 결과만 반환. 여기서 말하는 한쪽이란 세미조인 연산자기호의 닫힌 부분을 의미함.
디비전 : 속성 값의 집합으로 연산 수행 특정 값들을 모두 갖고 있는 투플을 찾을 때 사용. 조인 연산의 조합으로 같은 디비전 연산 수행 가능. 속성 A와 B로 이루어진 릴레이션R에 대하여 속성 A로 이루어진 릴레이션 S를 디비전 연산을 수행하면 릴레이션 S의 속성 A값과 서로 동일하게 대응하는 릴레이션 R의 속성 B의 투플들을 반환.
'데이터베이스 DataBase' 카테고리의 다른 글
chapter 04 SQL 고급 (0) | 2013.08.30 |
---|---|
chapter 03 SQL 기초 (0) | 2013.08.24 |
chapter 01 데이터베이스 시스템 (0) | 2013.08.18 |
chapter01 데이터베이스 시스템 (0) | 2013.07.30 |
SQL Server로 배우는 데이터베이스 개론과 실습 (0) | 2013.07.20 |