ERD

miin·2021년 4월 29일
0

DataBase

목록 보기
4/10
  • ERD의 규칙

데이터 무결성 제약 조건은 테이블에 잘못된 데이터가 들어가지 않도록 해준다

--primary key
null과 중복된값을 허용하지 않는다. 기본으로 쓰는 키
PK 먼저 지정->이미있는 키 지정

create table test1(
a1 number primary key, [PK기술하는 방법1 컬럼 옆에 바로 기술]
a2 number,
a3 number
);

insert into test1 values(1,1,1);
insert into test1 values(2,1,1); --a1컬럼에 2값이 없어서 들어감
insert into test1 values(2,3,4); --a1컬럼에 2값이 있어서 안 들어감
commit;

두개의 컬럼을 하나의 primary key로 사용할수 있음
create table test2(
a1 number,
a2 number,
a3 number,
primary key(a1,a2)[pk 기술하는 방법2 밑에 따로 기술] --컬럼 a1,a2 2개의 컬럼이 합쳐져서 하나의 키가 됨
);

insert into test2 values(1,1,1);
insert into test2 values(2,1,1);
insert into test2 values(2,3,4);
insert into test2 values(2,3,6); --a1,a2컬럼에 2,3이 있어서 안 들어감
insert into test2 values(1,1,6); --a1,a2컬럼에 1,1이 있어서 안 들어감
commit;

--foreign key
참조하는 컬럼에 존재하는 값만 접근할 수 있다. 외래키
create table test3(
a1 number primary key,
a2 number,
a3 number references test2(a1) [fk 기술하는 방법]--test2에 a1컬럼이 pk가 아니여서 문제가 발생
);

  • references test1(a1)이 실행 되려면 test1테이블과 a1컬럼이 기본키로 존재해 있어야한다
    참조할 테이블과 컬럼이 존재해야 참조할 수 있다
    테이블 생성 순서 test1->test3 (test1에 아무값도 들어있지 않으면 3에도 넣을 수 없다)
    테이블 삭제 순서 test3->test1 (test1을 먼저 삭제하게 되면 test3에서 참조하고 있는 데이터가 없어져 에러발생)

fk하고자 하는 테이블을 마지막으로 찍어야한다

--not null
null을 허용하지 않는다

--index
인덱스를 생성하는것이 좋은 컬럼
1 where절 이나 join조건 안에서 자주 사용되는 컬럼
2 null 값이 많이 포함되어 있는 컬럼
3 where 절이나 join조건에서 자주 사용되는 두개이상의 컬럼들
인덱스 생성 불필요
1 테이블이 작을때
2 테이블이 자주 갱신될 때

--unique index
중복된 값을 허용하지 않음 ,not null, 프라이머리키와 유니크 제약 조건시 생성되는 인덱스
create unique index
non unique
중복된 값을 허용
create index
--check
설정한 범위의 값만 허용

딕셔너리- 정보를 담은 데이터를 나타냄
메타데이터- 데이터를 정의

--sequence(시퀀스)
스스로 하나씩 증가하는 카운터를 관리하는 객체
sequence에는 primary key를 사용하지 않음
create sequence 시퀀스명; 시퀀스를 생성
drop sequence 시퀀스명(보통 test_SEQ 이런형식); 시퀀스 삭제
시퀀스명.nextval 시퀀스가 가지고 있는 현재 카운트수에서 하나를 증가시켜 반납
시퀀스명.currval 현재 시퀀스가 가지고 있는 카운트수를 리턴

--view 복잡한 내용의 sql문이나 특정 사용자에게 보여주고 싶지 않은 내용을 감추기 위해 사용
view는 테이블처럼 만들어 사용

트랜잭션
반드시 실행되거나, 반드시 실행되지 않은걸 묶어놓은 것
일관성,원자성(쪼갤수없어야함),독립성,지속성
정의: 질의어(sql)을 이용하여 데이터베이스를 접근하는것
select, insert,delete, update
commit 필수


= pk
| = 하나
0 = 없어도됨

비식별 = 점선표시, FK가 PK가 아님
식별 = 라인표시, FK->PK로 변경됨

숨겨진 테이블 삭제하기
오른쪽 마우스->테이블찾기->삭제할 테이블선택(더블클릭)->오른쪽마우스->삭제

key blog

0개의 댓글