728x90
반응형
2. 논리적 설계
2.1 ERD
(ERD로 작성)
(새발표기법)
2.2 TABLE 기술서
TABLE
테이블명 | 설명 |
구독자 | 회원의 정보 저장 |
출판사 | 관리자의 정보 저장 |
- Reader TABLE
한글 필드명 | 설명 | |
고객번호 | 회원에게 부여된 고유 번호(FK) | |
이름 | 회원의 이름 | |
나이 | 회원의 나이 | |
성별 | 회원의 성별 | |
주소 | 도 | 회원 주소지의 도 |
시 | 회원 주소지의 도 | |
구 | 회원 주소지의 도 | |
동 | 회원 주소지의 도 | |
상세 | 회원 주소지의 나머지 상세 주소 | |
구독기간 | 회원의 구독 기간 | |
총구독기간 | 회원의 총 구독 기간 | |
연락처 | 회원의 연락처 |
- Publisher TABLE
한글 필드명 | 설명 |
고객번호 | 회원에게 부여된 고유 번호 |
발행호 | 출판사에서 출간한 책의 발행 호 |
발송일 | 출판사에서 출간한 책의 전체 발송날짜 |
비밀번호 | 출판사(관리자)임을 인증할 수 있는 비밀번호 |
3. 물리적 설계
3.1 ERD
(새발표기법)
3.2 TABLE 기술서
TABLE
테이블명 | 영문 TABLE명 |
구독자 | Reader |
출판사 | Publisher |
- Reader TABLE
한글 필드명 | 영문 필드명 | 데이터타입 | 비고 | |
고객번호 | idReader | DOUBLE | Primary key | |
이름 | ReaderName | CHAR(10) | ||
나이 | ReaderAge | INTEGER | ||
성별 | ReaderSex | BOOL | ||
주소 | 도 | ReaderAdd_do | INTEGER | |
시 | ReaderAdd_city | CHAR(10) | ||
구 | ReaderAdd_gu | CHAR(10) | ||
동 | ReaderAdd_dong | CHAR(10) | ||
상세 | ReaderAdd_detail | CHAR(10) | ||
구독기간 | ReaderTerm | INTEGER | ||
총구독기간 | Reader3Term | DATE | ||
연락처 | ReaderTel | INTEGER |
- Publisher TABLE
한글 필드명 | 영문 필드명 | 데이터타입 | 비고 |
고객번호 | ReaderNum | NUMBERIC(8) | Primary Key |
발행호 | idPublisher | INTEGER | |
발송일 | sendDate | DATE | |
비밀번호 | passwordOwner | INTEGER |
4. DDL문
CREATE TABLE Publisher (
sendDate DATE,
passwordOwner INTEGER,
idPublisher INTEGER,
ReaderNum NUMERIC(8) NOT NULL
);
DROP INDEX XPKPublisher;
CREATE UNIQUE INDEX XPKPublisher ON Publisher
(
ReaderNum ASC
);
ALTER TABLE Publisher
ADD PRIMARY KEY (ReaderNum);
CREATE TABLE Reader (
ReaderName CHAR(10),
ReaderAge TIMESTAMP(),
ReaderSex SMALLINT,
ReaderAdd_do CHAR(10),
ReaderAdd_city CHAR(10),
ReaderAdd_gu CHAR(10),
ReaderAdd_dong CHAR(10),
ReaderAdd_detail CHAR(30),
ReaderTel NUMERIC(12),
ReaderTerm INTEGER,
Reader3Term TIMESTAMP,
ReaderNum NUMERIC(8) NOT NULL
);
DROP INDEX XPKReader;
CREATE UNIQUE INDEX XPKReader ON Reader
(
ReaderNum ASC
);
ALTER TABLE Reader
ADD PRIMARY KEY (ReaderNum);
ALTER TABLE Reader
ADD FOREIGN KEY (ReaderNum)
REFERENCES Publisher (ReaderNum)
ON DELETE RESTRICT;
create trigger tD_Publi after DELETE on Publisher
REFERENCING OLD AS OLD for each row mode db2sql
WHEN (0 < (select count(*) from Reader where Reader.ReaderNum =
old.ReaderNum))
BEGIN ATOMIC
SIGNAL SQLSTATE '75001' ('Cannot DELETE Publisher because Reader
exists.');
END
!!
create trigger tI_Reade after INSERT on Reader
REFERENCING NEW AS NEW for each row mode db2sql
WHEN ((0 = (select count(*) from Publisher where new.ReaderNum =
Publisher.ReaderNum))
)
BEGIN ATOMIC
SIGNAL SQLSTATE '75001' ('Cannot INSERT Reader because Publisher
does not exist.');
END
!!
728x90
728x90
BIG
'Programming' 카테고리의 다른 글
The Joel Test : 좀 더 좋은 프로그래밍을 위한 12단계 (0) | 2023.04.12 |
---|---|
개발자용 폰트 :: Bitstream Vera Sans Mono + 맑은고딕 (3) | 2023.04.12 |
Google 스타일 가이드 (0) | 2023.03.23 |
좋은 프로그래머가 되는 24가지 방법 (0) | 2020.09.03 |
알고리즘 시각화 사이트 (0) | 2020.07.15 |
댓글