DB최종 정리

권준석·2022년 11월 15일
0

DataBase(데이터베이스)

관계형 데이터베이스

고객의 정보를
테이블(표)로 정의한후 데이터 저장
(DBMS : 데이터베이스 매니지먼트 시스템)

DB의 특징

  • 실시간 접속(실시간으로 접근)
  • 실시간 변화(계속적인 변화)
  • 공유 데이터 (동시에 데이터 공유)

DBMS 종류

  • mysql
  • mariaDB
  • Oracle

DB 속성

테이블 : 정보를 표로 저장한것
컬럼 : 저장된 표의 하나의 대 제목
컬럼조건 : 컬럼의 속성을 뜻한다 null, unique, 기본키, 외래키 등이 있다
튜플 : 컬럼에 맞는 저장된 한줄의 정보

DDL

테이블의 생성, 수정, 삭제의 일련의 작업
생성 : create
삭제 : drop
수정 : alter

DML

튜플의 생성, 수정, 검색, 삭제의 일련의 작업
생성 : insert
수정 : update
검색 : select
삭제 : delete

DML 구조

1. select 문

select 검색할 컬럼
from 대상테이블
[where] 튜플의조건
[group by] 그룹의 조건 , 집계와 통계
[order by] 정렬할 속성
.[ ]:생략가능

실행순서
from - where -group by - order by - select

2. update 문

update 대상테이블
set 수정할 튜플
where 튜플의 조건

3. delete 문

delete
from 대상테이블
where 튜플의 조건

튜블을 식별하기 위해 만든 식별자
튜블 속성에 key라는 식별을 부여

종류

  • 슈퍼키 : 유일성을 보장 한다 뭉쳐서도 사용 가능
  • 후보키 : 유일성을 보장하기위한 최소한의 속성
  • 기본키 : 후보키중 선정된 키 데이터릐 신뢰성을 보장하기 위해 사용한다
  • 대채키 : 기본키에서 선택되지 않느 후보키
  • 외래키 : 2개 이상의 테이블을 연결할때 사용 부모테이블과 자식 테이블이있다

기본키

후보키중 선정된 키로 중복(unique)된 값을 가질 수 없으며 최소성(not null)을 가진다

외래키

부모 테이블에서 참조할 자식 테이블과 이어주는 컬럼

부모테이블

  • 자식 테이블으로 부터 참조를 당한다
  • delete, update 영향을 받는다

자식테이블

  • 수정과 삽입 동작에서 부모 테이블의 데이터를 참조한다
  • insect, update 영향을 받는다

외래키가 참조하는 컬럼(속성)은 반드시 중복이 없어야 한다

부모테이블과 자식테이블의 외래키는 컬럼명이 같으면 좋다

사용이유

  • 테이블은 무결성을 위해 나눠야 한다
  • 테이블은 표현하고자 하는 컬럼(속성)만 모아야한다
  • 쪼개진 테이블은 외래키로 이어진다
  • 외래키가 참조하는 컬럼은 유니크해야한다

무결성의 분석

데이터의 정확성과 일관선을 유지하고 보증하는것

종류

  • 개채무결성
  • 도메인 무결성
  • 참조 무결성

ERD(개체 관계 다이그램)

테이블간의 관계를 설명해주는 다이그램

  • 관계형 DB에서 개체의 관계와 속성을 시각화 한다
  • 소프트웨어 기획 단계에서 사용된다
  • 서로 가은 시스템 요소와 서로 간의 관계 식별에 도움된다

데이터 라이브러리

DB에 일반사용자를 제외한 모든 정보가 있는곳

  • 인덱스

    • 목차를 생성한다
  • select과정의 성능을 향상한다

  • 수정과 삭제 과정의 성능을 향상 시킨다( 수정과 삭제의 행위는 느려진다)

  • 무결성을 위해 분리해 놓은 테이블을 합쳐서 가상읠 테이블로 만드는 기술

DCL(Data Control Language)

데이터 제어어로 DB에 접근하고 객체들을 사용할 권환부여와 회수하는 명령어
-권한부여, 회수, 제어, 복구

Create user : 계정생성
Grant : 권한부여
Rollback : 원래상태복구
Commit : 물리적인 디스크로 저장, 작업완료

계정 권한이 필요한이유

  • root는 모든 DB을 사용할수 있는 권한이 있기때문에
    일반사용자에게 root을 알려주지 않고 계정을 생성해 권한을 준다
  • 권한은 개별 테이블 또는 DB 전체가 대상이 될 수 있으며
    권한은 DML권알을 각각 부여할수있으며 이중 수정과 삭제 권한이 제일 높다

뷰 Join

데이터의 무결성과 효율적인 저장곤간을 위해 분리해놓은 정규화 과정을
클라이언트가 보기 편하게 역정규화 과정을 진행하는것

Join종류

  • cross :모든경우의 수를 곱해서 나타낸다(카타시안 곱에서 활용)
  • inner : 같은 속성 별로 테이블을 합한것
  • outer : 같은 속성으로 테이블을 합하고 조인에 참여하지 않는 튜플까지 표현
    - 표현할 테이블을 기준으로 참여하지 않는 튜플을 표현한다 (왼쪽: left,오른쪽:right,모두:full)
  • self : 자기 자신의 테이블과 조인

서브쿼리

하나의 쿼리문을 리턴값으로 취급해 또 다른 쿼리문에서 사용하는것

  • select문의 order by절에서 사용할수없다
  • 사용하는 위치에 따라 이름과 조건이 생긴다

종류

  • 스칼라 서브쿼리

    • select절에서 사용되는 서브쿼리
    • 나타내는 리턴값은 1개여만 사용가능하다
  • 인라인 뷰

    • from절에서 사용하는 서브쿼리
    • 리턴값을 테이블로 사용할 의도로 사용한다
    • 별도의 명칭을 지정해야한다
  • 서브쿼리

    • where절에서 이후에 사용되는 서브쿼리
    • 단일행일때 단일 비교 연산자 사용가능
    • 복수행일때 복수 비교연산자 사용
profile
ㅇㅇ

0개의 댓글