*롤(Role)
- 사용자에 대해 부여될 수 있는 권한 집합
-connect : 접속 권한
-resource : table, sequence view 생성 권한
--계정 생성
create user com01 identified by COM01;
--권한 부여
grant create session, create table, create sequence, create view to COM01;
--테이블 스페이스
alter user COM01 default tablespace users quota unlimited on users;
-- 계정삭제
-- drop
--------------------------------------------------------------------------------
--롤을 이용한 생성
create user COM02 identified by COM02;
--롤(권한의 집합)
grant connect, resource to COM02;
alter user COM02 default tablespace users quota unlimited on users;
**데이터베이스 모델링
테이블 - 엔티티(entity)
행 - 튜플(tuple)
컬럼 - 속성(attribute)
모델링 순서
업무파악 -> 개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적 데이터 모델링
*화면 정의 기획서 (stroyboard)
- 화면에 대해서 해당 화면은 어떤 기능들을 가지고 있는지에 대한 내용들을 적어놓은 것, 틀 생성
-> 스토리보드를 기반으로 테이블 설계가 들어간다
*cardinality 관계 대응수
- 엔티티와 엔티티의 관계대수
*Optionality
- 엔티티와 엔티티의 필수, 옵션 표기
- 필수인지 아닌지를 체크
*N:N관계라면 테이블(데이터베이스)로 표현될 수 없음
-> 슈퍼키로 pk를 하나로 잡거나 의사컬럼이용 ->식별관계
-> 의사컬럼: 테이블의 컬럼처럼 동작하지만 실제로 테이블에 저장되지는 않는 컬럼 ->비식별관계
* 식별관계라고 표현이 되면 강의테이블과 회원테이블에 먼저 인서트된 후 맵핑테이블에 들어간다
-> pk는 null값을 가지지 못하기 때문
-> 맵핑 테이블에 바로 데이터를 넣는 것이 불가능
-> 회원 테이블에도, 강의 테이블에도 데이터가 있는 상태에서 먼저 인서트돼야한다
* 비식별관계라면 데이터가 바로 맵핑테이블에 들어갈 수 있다
-> 먼저 데이터가 들어가고 나중에 수정이 가능하다
-> foreign key는 null값을 가질 수 있기 때문
-> 보통 비식별관계 이용
*논리적 데이터 모델링
-> 관계형 데이터 베이스에 맞게끔 표로 전환하는 작업
식별 관계
식별 관계란, 부모 테이블의 기본키 또는 유니크 키를 자식 테이블이 자신의 기본키로 사용하는 관계입니다. 부모 테이블의 키가 자신의 기본키에 포함되기 때문에 반드시 부모 테이블에 데이터가 존재해야 자식 테이블에 데이터를 입력할 수 있습니다. 즉, 부모 데이터가 없다면 자식 데이터는 생길 수 없습니다.
식별관계는 ERD상에서 실선으로 표시합니다. 자식 테이블에 데이터가 존재한다면 부모 데이터가 반드시 존재하는 상태가 됩니다. 바퀴는 자동차 테이블에 데이터가 존재해야 생성할 수 있습니다. 즉, 부모 테이블에 자식 테이블이 종속됩니다.
비식별 관계
비 식별 관계란 부모 테이블의 기본키 또는 유니크 키를 자신의 기본키로 사용하지 않고, 외래 키로 사용하는 관계입니다. 자식 데이터는 부모 데이터가 없어도 독립적으로 생성될 수 있습니다. 부모와의 의존성을 줄일 수 있기 때문에 조금 더 자유로운 데이터 생성과 수정이 가능합니다.
장단점
식별 관계의 장점
- 데이터의 정합성 유지를 DB에서 한번 더 할 수 있다
- 자식 테이블에 데이터가 존재한다면 부모 데이터도 반드시 존재한다고 보장할 수 있다
식별 관계의 단점
- 요구사항이 변경되었을 경우 구조 변경이 어렵다
비식별 관계의 장점
- 변경되는 요구사항을 유동적으로 수용할 수 있다
- 부모 데이터와 독립적인 자식 데이터를 생성할 수 있다
비식별 관계의 단점
- 데이터 정합성을 지키기 위해서는 별도의 비즈니스 로직이 필요하다.
- 자식 데이터가 존재해도 부모 데이터가 존재하지 않을 수 있다
- 즉, 데이터 무결성을 보장하지 않는다
'SQL' 카테고리의 다른 글
44일차 22.11.22 (0) | 2022.11.29 |
---|---|
43일차 22.11.21 (0) | 2022.11.21 |
41일차 22.11.17 (0) | 2022.11.17 |
40일차 22.11.16 (0) | 2022.11.16 |
39일차 22.11.15 (0) | 2022.11.15 |
댓글