본문 바로가기

CS(Computer Science)/데이터 베이스

데이터 베이스 1(Database)

 

Database System : DB , DBMS 등을 포함하는 전체적인 system

 

<DBMS>

DBMS(DataBase management Systems) : DataBase를 관리해주는 시스템 소프트웨어

                                                      (ex - MySQL , Oracle...) 

                                                      (DBMS밑에 운영체제)

                     

        필수 기능 :  1. 정의 기능 -> DDL(Data Definition Language) :  

                                              (CREATE , DROP , ALTER)

                        2. 조작 기능  -> DML(Data Manipulation Language) :

                                              (SELECT, INSERT, DELETE, UPDATE)

                        3. 제어 기능 -> DCL (Data Control Language) :

                                            (GRANT-권한 부여, REVOKE-권한 회수)

                                                                               

                                 TCL(Transaction //) -> COMMIT, ROLLBACK , SAVEPOINT

 

                     

 

트랜잭션 : 데이터 처리 단위 (ex - 계좌 이체 -> 출금하고 다른 계좌에 입금하는게 세트)

 

 


<데이터 처리 시스템>

- 일괄 처리 (Batch)

- 온라인 처리 (일반적으로 많이 사용)

- 분산 처리

     1. 위치 투명성 : 엑세스하려는 데이터베이스의 실제 위치를 알 필요가 없음.

     2. 중복 투명성 : 중복 데이터가 여러 곳에 중복되어 있더라도 사용자는 하나만 존재하는 것처럼 사용

     3. 병행 투명성 : 다수의 트랜잭션들이 동시에 실행되도 그 트랜잭션의 결과는 영향받지 않음

     4. 장애 투명성 : 오류가 발생해도 트랜잭션을 정확하게 처리함


DataBase 개념적 구성요소 : 개체 , 관계 ,속성 

 

 

<스키마>

 외부 스키마 : 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것(view) (보고싶은 부분만)

 개념 스키마 : 외부스키마를 모아서 하나로 보여주는 스키마 (본래 정의된 스키마)

 내부 스키마 : 물리적인 관점의 스키마

 

 

 

논리적 데이터 독립성 : 데이터베이스의 논리적 구조를 변경시키더라도 기존 응용 프로그램에 영향을 주지 않음

                                (개념스키마가 변경되더라도 외부 스키마에 영향을 주지 않음)

물리적 데이터 독립성 : 물리적 구조를 변경시키더라도 기존 응용 프로그램이나 DB논리적 구조에 영향을 주지않음

                                (내부스키마 바뀌어도 개념스키마에 영향 주지 않음)

 


 

 

<관계 데이터베이스>

 

Relation : 스키마 + 인스턴스    (튜플의 순서가 다르고 에트리뷰트 순서가 달라도 같은 relation)

Cardinality :  rows

Degree : fields

 

 

 

<Relation Key>

수퍼 키 : 특정 투플을 고유하게 식별하는 하나의 애트리뷰터 or 애튜리뷰트들의 집합

후보 키 : 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임 (슈퍼키 중 최소성 만족)

기본 키 : 후보키 중에서 특정하게 선정된 키 (NULL값을 가질 수 없음)

대체 키 : 기본 키가 아닌 다른 후보 키

외래 키 : 다른 릴레이션의 기본 키를 참조하는 애트리뷰트

 

 

 

<Relation Query Language>

- Query Language 를 사용하면 DBMS가 연산 최적화 길을 찾아줌 (SQL은 Real languages)

 

관계 대수 (Relational Algebra) -> 절차적   (Selection, Projection, Union, Intersection 등)                                     

관계 해석 (Relational Calculus) -> 비절차적

 

 

 

<SQL>

SQL (Structured Query Language) -> 관계 대수 + 관계 해석

     - SQL 사용하면 query optimizer가 최적화를 시켜줌

 

정의문 (스키마 정의) (IC 생성 )

    - CREATE TABLE (기본 테이블 생성)

    - DROP TABLE (기본 테이블의 제거)

    - ALTER TABLE (기본 테이블의 변경)

     Large objects (사진, 비디오 등)는 포인터로 저장됨.

 

조작문

    - SELECT (데이터 검색)         ( 순서 FROM , WHERE , SELECT )

    - INSERT INTO (데이터 삽입)

    - DELETE (데이터 삭제)

    - UPDATE (데이터 갱신)

 

 

무결성 제약조건 (Integrity Constraints)   -> 얼마든지 정의 가능 

    개체 무결성 (Entity Integrity) : 기본 키는 NULL가지면 안됨

    참조 무결성 (Referential Integrity) : 외래키는 NULL이거나 참조 릴레이션의 기본 키 값과 동일해야함

                                                  (즉 릴레이션은 참조할 수 없는 외래 키 값을 가질 수 없음)

                                               외래 키 선언 (cascade -> 참조 데이터 삭제 시 연쇄 삭제,

                                                                 set default -> 참조 데이터 삭제 시 default값으로 변경,

                                                                 set Null -> 조 데이터 삭제 시 NULL값으로 변경,

                                                                 no action -> 삭제 불가),, 변경 시도 다 마찬가지 

    

 

 

 


<참고 >

where절 후에 group by ,  다음 having 절 (HAVING은 GROUP칸들 중 다시 선택

View -> 가상테이블 (실제 데이터가 아니라 명령어로 저장되있음)

반응형