데이터베이스구조_0315_Tues

allzeroyou·2022년 3월 15일
0

데이터베이스

목록 보기
3/25

Preview

오늘 이후 지각 시간은 6분 후부터
거절 잘 하는 법?
AI 엑스포 개최
특정 정보를 타켓팅하고 검색 함.
엑스포는 무의식적으로 받아드릴 수 있음(뭔가를 얻기보다는 보고 와라. 시야가 넓어질수도 아무 생각도 안들 수 있으나, '계기'를 만들어라! 라는 의미)

용어에 집착하지 마라
1. 키
유일하게 식별할 수 있는 값
특정 테이블에만 영향을 주는 것이 아닌 종속적인 다른 테이블까지 영향을 미침

무결성 제약 조건

데이터 무결성(integrity)

데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것

도메인 무결성 제약조건(default)

도메인: 해당 속성에 대한 type과 범위
나이: 나이는 음수가 아닌 양수이어야 됨. 제약 조건: 양수

개체 무결성 제약조건(default)

기본키 제약이라고도 함.
릴레이션은 기본키를 지정하고 그에 따른 무결성 원칙, 즉 기본키는 NULL 값 불가 및 릴레이션에 오직 하나의 값만 존재해야 함

  • 삽입: 기본키 값이 같으면 삽입이 금지
  • 수정: 기본키 값이 같거나 NULL으로도 수정 금지
  • 삭제: 특별한 확인이 필요하지 않으면 즉시 수행함(다른 table에서 FK로 사용되지 않을 때)

참조 무결성 제약조건(option)

외래키 제약이라고도 함.
릴레이션 간의 참조관계를 선언하는 제약조건임. 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다는 것.

데이터 탐색, 가공 등 내 입맛에 맞는 데이터를 가져와야 함 => 최적화 과정이 어려움
sql 자체를 심플하고 라이트 코드를 짤 수 있음.

  • 삽입
    자식 릴레이션: 참조받는 테이블에 외래키 값이 없으면 삽입 금지
    그러나 NULL은 가능.

  • 삭제

  1. 즉시 작업을 중지
  2. 자식 릴레이션의 관련 튜플을 삭제
  3. 초기에 설정된 어떤 값으로 변경
  4. NULL로 변경
  • 수정
    삭제 => 삽입 명령이 연속해 수행됨.
    삭제, 삽입에 필요한 제약 조건이 순차적으로 수행됨.

참조 무결성 제약조건의 옵션(부모 릴레이션의 튜플 삭제할 경우)

  • RESTRICTED
  • CASCADE
  • DEFAULT

관계대수

키와 제약조건을 다룸.
유일하게 식별할 수 있는 값을 가지고 다른 테이블과 관계를 맺는다.
도메인, 객체 ,참조 제약조건 다룸.

관계대수

대수?
선형대수학..?
사칙연산에 관련된 기호들로 수학적개념을 표현하는것을 '대수'라고 함.
수학적기호로 어떤 데이터를 어떻게 가져올지를 표현함! = 관계대수
원하는 정보를 어떻게 유도하는가에 대한 절차적 언어(연산자와 연산규칙)

의사코드(슈도코드, pseudocode)는 프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어이다. 특정 프로그래밍 언어의 문법에 따라 쓰인 것이 아니라, 일반적인 언어로 코드를 흉내 내어 알고리즘을 써놓은 코드를 말한다.

알고리즘 짤 때, 전체 코드를 짜지는 않기에.
논리적인 순서에 따라 코딩.

관계의 (수학)적 의미

ex) A={2,4} , B={1,3,5} 일 때
AxB = {(2,1),(2,3),(2,5),(4,1),(4,3),(4,5)}
6개 조합이 나옴!

8bit = 256
아스키 코드 값 7bit = 128개의 정보 표현 가능

원소 개수가 n인 집합 s의 부분집합의 개수는 2^n이므로, 카티전 프로덕트 AxB의 부분집합 개수는 2^|A|x|B|임

관계 대수 연산자

  • 셀렉션
  • 프로젝션
  • 개명
  • 디비전
  • 합집합
  • 차집합
  • 교집합
  • 카디전 프로덕트
  • 세타조인
  • 동등조인
  • 자연조인
  • 세미 조인(왼쪽, 오른쪽)
  • 외부 조인(왼쪽, 오른쪽, 양쪽)

🤝 join: 두 개 테이블을 하나로 합치는 것. 이때 공통적인 속성을 바탕으로

관계대수식

관계대수식은 관계를 표현하는 기호 및 연산자로 이뤄진 식.
결과 릴레이션(테이블)을 찾는 절차

셀렉션: 조건에 맞는 튜플을 추출함
프로젝션: 조건에 맞는 속성만을 추출함
합집합: 합집합을 구함(단, 합집합을 하려는 두 집합의 속성이 같아야 함)
차집합: 차집합을 구함(단, 차집합을 하는 순서 중요)
조인: 합집합과 다르게, 해당 릴레이션에 바로 옆에 릴레이션을 붙임.

셀렉션

조건에 맞는 튜플(데이터)을 추출함.
그러나 하나의 릴레이션을 대상으로 하는 단항 연산자임.

셀렉션의 확장

복합 조건 가능.
ex) 가격이 8000원 이하이면서 도서번호가 3 이상인 것
연산자 검색 방법) db selection not 기호

프로젝션
합집합

합집합하려는 서로 같은 속성 순서와 도메인을 가져야 함.
서울 서점 테이블과 판교 서점 테이블을 합집합하려고한다.
if 서울에 있는 도서 가격과 판교에 있는 도서 가격이 다르다면?
도서번호와 도서가격을 둘 다 fk로 삼아야!

차집합
카티전 프로덕트(cartesian product)

두 릴레이션을 연결시켜 하나로 합칠 때 사용.

조인

앞에서는 두개의 속성이 모두 같아야 함.
관계형데이터베이스를 다루다보니, fk와 pk는 관련성이 있음.

  • 세타조인과 동등조인
    세타조인: 조건을 만족하는 튜플만 반환
    예를 들면, 같은 값이 있는 것만 반환

관계대수에서 반영이 됨.
join을 한 테이블은 실존하지 않는 테이블임.

  • 자연조인
    조인할 때, 두 테이블에서 중복된 컬럼은 조인을 하지 않음.

  • 외부조인

profile
모든 건 zero 부터, 차근차근 헛둘헛둘

0개의 댓글