반응형
관계형 데이터페이스 구조
- 릴레이션(Relation): 데이터베이스 테이블
- 튜플(Tuple) : 릴레이션을 구성하는 각각의 행, 튜플의 수를 카디널리티라 부른다.
- 속성(Attribute) : 데이터베이스를 구성하는 가장 작은 논리적 단위
- 도메인(Domain) : 도메인은 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자들의 집합
< 릴레이션의 특징 >
- 한 릴레이션에 포함된 튜플은 모두 다르다.
- 튜플 사이의 순서가 없고 삽입/삭제 등으로 인해 시간에 따라 변한다.
- 속성 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장한다.
관계형 데이터베이스 제약 조건
- 후보키 : 기본키로 사용할 수 있는 속성, 모든 튜플에 대해서 유일성과 최소성을 만족한다.
- 유일성 : 하나의 키 값으로 하나의 튜플을 유일하게 식별 가능해야 한다.
- 최소성 : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성만으로만 구성되어야 한다.
- 기본키 : 후보키중 선택한 주 키로 NULL 값을 가질 수 없다.
- 대체키 : 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 말한다.
- 외래키 : 관계를 맺고 있는 두 실레이션에서 한 릴레이션이 참조하고 있는 다른 릴레이션의 기본키와 같은 릴레이션의 속성을 말한다.
- 무결성 : 데이터의 정확성과 일관성을 유지하고 보증하는 것
- 개체 무결성 : 릴레이션에서 기본키를 구성하는 속성은 NULL 값이나 중복값을 가질 수 없다.
- 참조 무결성 : 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야 한다.
관계 대수 및 관계 해석
< 관계 대수 >
< 관계 해석 >
- 관계 데이터의 연산을 표현하는 방법으로 원하는 정보를 정의할 때는 계산 수식을 사용한다.
- 원하는 정보가 무엇인지만 정의하는 비절차적 특징을 지닌다.
- 튜플 관계해석과 도메인 관계해석이 있다.
정규화
< 정규화 목적 >
- 종속성 이론을 이용하여 잘못 설계된 관계셩 스키마를 더 작은 속성의 세트로 쪼개 바람직한 스키마로 만들어 가는 과정
- 데이터 구조의 안정성을 최대화해 중복성 및 종속성을 배제시키는 방법으로 사용한다.
- 효과적인 검색 알고리즘을 생성하고 중복을 배제해 삽입/삭제/갱신 이상의 발생을 방지한다.
- 삽입 이상 : 릴레이션에 데이터를 삽입할 때 의도와는 상관없는 원하지 않는 값들도 함께 삽입되는 현상
- 삭제 이상 : 릴레이션에 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
- 갱신 이상 : 릴레이션에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
< 정규화 과정 >
- 제 1정규형 : 다치가 존재하지 않는 릴레이션
- 제 2정규형 : 부분 함수적 종속성 x (기본키가 기본키가 아닌 속성에 종속 관계를 가짐)
- R(A, B, C, D), A->C 일때 R1(A, C), R2(A, B, D)
- 제 3정규형 : 이행적 종속 관계 x (기본키가 아닌 속성이 다른 속성에 종속 관계를 가짐)
- R(A,B, C, D), C->D 일때 R1(C, D), R2(A, B, D)
- BCNF : 3 정규형에서 결정자이며 후보키가 아닌것 제거
- cf) 종속 관계 : ‘학번’에 따라 ‘이름’이 결정될 때 ‘이름’을 ‘학번’에 함수 종속적이라 하며 ‘학번->이름’으로 표기한다.
데이터베이스 언어
- DDL(Data Definition Language)
- DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용되는 언어
- 외부 스키마 명세를 정의하고 논리적/물리적 데이터 구조 정의
- CREATE, ALTER, DROP, RENAME 등의 명령어를 사용한다.
- CREATE SCHEMA/DOMAIN/TABLE/INDEX 이름
- ALTER TABLE 테이블이름 ADD/ALTER/DROP 속성이름
- DROP SCHEMA/DOMAIN/TABLE/VIEW [CASCADE/RESCTRICTED]
- DML(Data Manipulation Language)
- 사용자가 데이터를 처리할 수 있게하는 도구로 사용자와 DBMS간의 인터페이스를 제공한다.
- SELECT, INSERT, DELETE, UPDATE 등의 명령어를 사용한다.
- SELCT ~ FROM ~ WHERE ~ GROUP BY ~ HAVING ~
- INSERT ~ INTO ~ VALUES ~
- DELETE ~ FROM ~ WHERE ~
- UPDATE ~ SET ~ WHERE ~
- DCL(Data Control Language)
- 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어다.
- GRANT(권한 생성), REVOKE(권한 삭제)
뷰(VIEW)
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 유도된 가상 테이블이다.
- 물리적으로 저장장치에 존재하지 않지만 있는 것처럼 간주한다.
- 기본 테이블과 같은 구조를 가지며 조작도 기본 테이블과 거의 같다.
- 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.
뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블을 기초로 정의된 다른 뷰도 삭제된다.
- 장점 : 접근 제어를 통한 자동 보안과 사용자 데이터를 간단하게 해준다.
- 단점 : ALTER VIEW로 정의를 변경할 수 없다. 삽입/삭제/갱신 연산에 제약이 따른다.
시스템 카탈로그 (=데이터 사전)
- 시스템 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
- 데이터 객체에 대한 정의나 명세에 관한 정보를 유지/관리하는 시스템 테이블이다.
- 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.
- 카탈로그는 DBMS가 스스로 생성하고 유지한다.
- 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색할 수 있다.
- INSERT/DELETE/UPDATE 문으로 카탈로그를 갱신하는 것은 허용되지 않는다.
반응형
'∙Databases' 카테고리의 다른 글
[정보처리기사]데이터베이스 고급 기능 (0) | 2020.06.30 |
---|---|
[정보처리기사]데이터베이스 개념 및 모델링 (0) | 2020.06.30 |
[Databases] Database Sharding(샤딩)이란? (0) | 2019.01.29 |
[Databases] 카카오뱅크는 어떻게 MySQL를 사용할까? (0) | 2018.12.13 |