데이터베이스 Intro, relational model

김태희·2일 전
0

데이터베이스

목록 보기
1/3

1.1 Intro


DBMS

  • Database management system

Relational Model

  • maximal independence

  • Entities : 개체

  • Relationships : 관계

DBMS를 쓰는 이유

  • Data independence
  • Efficient data access
  • 무결성 보안성 생산성 등등

스키마

  • 데이터의 구조를 표현한 것
  • 각각의 릴레이션은 스키마를 가진다

무결성

3개의 스키마로 나눠서 관리하는 이유

  • 데이터 독립성을 달성하기 위해서

rDBMS

  • Logical 데이터 independence가 제공됨
  • physical 데이터 independence를 제공한다

Transactions

  • 동시성 제어
  • recovery

ACID

  • Atomicity
    • all or nothing
  • Consistency
  • Isolation
    • 혼자 쓰는 것처럼 느껴지는
  • Durability

repeatable read : 읽을 때마다 값이 바뀌는

Oracle에서는 옛날 꺼랑 오늘 꺼도 보여줌

병행제어(Concurrency Control)로 문제 해결

1.2 relational model


relational Data Model

  • Structure
  • Operations
    • 쿼리, 삭제, 삽입 등
  • Constraints

Data independence

중복 허용 안 됨

릴레이션

: a set of rows or tuples

  • tuples ; row ; records ; cardinality
  • attribute ; columns ; fields; degree
  • 행과 열의 순서는 중요하지 않다
  • primary key는 유니크하다

비어있는 건 null값

DDL

  • data definition Language
  • students relation
  • enrolled table

type이 맞지 않으면 에러냄

m:n의 관계성 → 별도 테이블

m:1, 1:n, 1:1 → 별도 테이블x

DML

  • Data manipulation Language
  • INSERT INTO
  • SET_ORIENTED SEMANTICS (집합 시맨틱)

무결성 제약조건 (ICs)

  • 데이타 엔트리 에러
  • 만족하는지 DBMS가 체크
  • Constraint의 두가지 예시
    • Primary key
      • entity의 무결성을 보장
      • primary key에는 null값 안 됨
      • primary key가 아니면 중복 허용 가능 (근데 또 유니크 키면 달라야함)
      • primary key에는 자동적으로 인덱스를 만들어서 다른 ex) 9999에 가있는지 빨리 체크할 수 있도록 한다
    • foreign key
      • 참조 무결성
      • 논리적인 포인터
      • dangling references 발생하지 않음
      • null 값 됨
      • 자기를 참조하는 특수 형태의 외부키도 있음

key가 되려면

  1. 키로 지정된 속성 값이 같으면 두 행은 동일한 행이어야 한다
  2. 키의 부분 집합으로는 고유성을 유지할 수 없다 (최소성을 가진다)

Candidate key (후보키)

  • primary가 될 수 있는 거 후보키

superkey (슈퍼키)

  • : {sid, name}
    • ⇒ name 빼도 괜찮으니까 슈퍼키

삽입하거나 지울 때

  1. CASCADE
    • 지운다
    • ex) 자퇴
  2. NO ACTION
    • 지우면 안 됨
  3. SET NULL
    • ex) 부서 소속 없는 직원들
  4. SET DEFAULT
    • 디폴트 값으로 바꾼다

업데이트 되는 새로운 값이 parent table에 primary 값으로 존재하면 문제없음

존재하지 않으면 에러

트랜잭션에서 무결성 제약조건

  • commit할 때까지 미뤄라
    • Base type의 값이 바뀌면 view도 바뀜 (조건 아니면 안 바뀜)

View

  • 뷰는 definition만 저장된다
    • 실제로는 저장되는 게 x
  • 가상 릴레이션이다
  • 장점
    1. 간단하게 보고싶은 것만 볼 수 있음
    2. data independence
    3. security
  • 업데이트에서는 좀 제한적임
  • Materialized 뷰
    • 결과를 저장
    • 속도를 빠르게 하기 위한

릴레이션

  • 지울 때
    • DROP TABLE
  • 바꿀 때
    • ALTER TABLE
profile
내 벨로그

0개의 댓글