본문 바로가기
학교 강의/데이터베이스

데베 14주차

by hoshi03 2023. 12. 1.

시험범위 내장함수 ~ 배운데 

 

트리거 : 특정 조건이 만족하면 저절로 실행되는 함수

 

행트리거 for each row : 각각 실행

 

트리거 이벤트

 

after : 동작 수행 후

before : 동작 수행 전

 

문장 트리거

 

insert update delete 문 을 수행할떄

 

after insert on triaaa for each row

begin

    sql 쿼리;

end;

형태

 

트리거를 이용해서 한 테이블에 insert를 하면 다른 테이블은 delete나 update 등을 하게 할 수 있다

 

위의 트리거를 적용하기 위해서 상품, 주문 테이블을 만들어본다

 

create database examtri;
use examtri;


create table goods(
    proname varchar(20) primary key,
    account int
    );
    insert into goods values('사과', 100);
	insert into goods values('포도', 100);
	insert into goods values('딸기', 100);
    
    
desc goods;
select * from goods;

alter table goods modify account int; 

create table ordering(
	orderno int auto_increment primary key,
    userid varchar(20),
    proname varchar(20),
    ordercount int
    );
    
create table deliver(
	delno int auto_increment primary key,
    proname varchar(20),
    delcount int
	);
    
-- ordering 주문(insert)시 goods 테이블의 account 개수변경

    
delimiter //
create trigger triin
after insert on ordering for each row
begin
	update goods 
    set account = account - new.ordercount
    where proname = new.proname;
end;//

-- goods 테이블의 account가 감소하면 감소한 만큼 deliver 테이블에서 배송

delimiter //
create trigger triout
after update on goods for each row
begin
	insert into deliver (proname, delcount)
    values (new.proname, old.account - new.account);
end;//

-- ordering에 값을 추가하면 다른 테이블들도 변경된다!

insert into ordering (userid, proname, ordercount) 
values ('hong','사과',10);

select * from goods;
select * from ordering;
select * from deliver;

 

 

데이터베이스 설계

1. 요구사항 분석(요구사항 명세서 만들기)

2. 개념적 설계(ER 다이어그램)

3. 논리적 설계(제약조건, 릴레이션 설계)

4. 물리적 설계

 

• 개념적 설계 - 개체 도출, 관계 추출, erd 다이어그램

 

!시험

관계를 추출한 결과, 위의 관계는 N : M 관계라 새로운 엔티티 둬서 해소시켜야한다

1 : N 관계일때는 선택적으로 새로운 엔티티를 둘 수 있고, 요구사항을 충족시키기 위해서 새로운 엔티티를 만들 수 있다

 

• 논리적 설계(데이터 모델링)

 

논리적 설계를 통해서 릴레이션 스키마를 만든다

 

개념적 설계 단계의 결과물인 E-R 다이어그램을 릴레이션 스키마로 변환
릴레이션 스키마로 변환 후 속성의 데이터 타입, 길이, 널 값 허용 여부, 기본 값, 
제약조건 등을 세부적으로 결정하고 결과를 문서화시킴

 

 

논리적 설계 규칙 <- 시험에 나올 수도 있다!

 

• 규칙 1 : 모든 개체는 릴레이션으로 변환한다.


• 규칙 2 : 다대다(n:m) 관계는 릴레이션으로 변환한다.


• 규칙 3 : 일대다(1:n) 관계는 외래키로 표현한다.


• 규칙 4 : 일대일(1:1) 관계는 외래키로 표현한다.


• 규칙 5 : 다중 값 속성은 릴레이션으로 변환한다.

(ex - 주소를 입력할때는 다양한 값을 가지고 있으니, 다양한 값들을 릴레이션을 작성해서 주소에 대한 속성들을 정리한다)

erd에서는 타원을 두개 그리는 방식으로 정리

주소 릴레이션을 상세하게 풀어서 세부적인 릴레이션으로 작성한다

 

논리적 설계에서 스키마까지 작성한다

'학교 강의 > 데이터베이스' 카테고리의 다른 글

데베 기말 시험대비  (0) 2023.12.12
데베 15주차  (1) 2023.12.08
데베 13주차  (0) 2023.11.24
데베 퀴즈 대비  (1) 2023.11.16
10주차  (0) 2023.11.10