Download presentation
Presentation is loading. Please wait.
1
2장. 학사관리 예제 DATABASE 학사 데이터베이스의 해설 테이블의 내용 무결성 규칙 쉽게 배우는 MySQL 5.x
쉽게 배우는 MySQL 5.x
2
2.1 학사 데이터베이스의 해설 -학사 데이터베이스는 학생이 대학 생활에 필요한 9개의 테이블로 구성
• STUDENT (학적 : 학생신상 테이블) • ATTEND (수강 : 수강신청 테이블) • FEE (등록 : 등록사항 테이블) • SCORE (성적 : 성적사항 테이블) • SUBJECT (교과목 : 교과목 테이블) • PROFESSOR (교수 : 교수 테이블) • POST (우편번호 : 우편번호 테이블) • CIRCLE (동아리 : 학생의 동아리 정보 테이블) • DEPARTMENT (학과 : 학과정보 테이블) 쉽게 배우는 MySQL 5.x
3
-학적테이블은 학생 신상에 관한 데이터로서 이름, 주소, 주민등록번호 …내용
표 2.1 학적(STUDENT) 테이블의 정보 칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 stu_no char(10) PK NN/U 학번 stu_name NN 이름 stu_ename varchar(30) 영문이름 dept_code int(2) FK DEPARTMENT 학과 grade int(1) 학년 class 반 juya char(2) 주야구분 id_num varchar(14) 주민등록번호 post_no varchar(6) POST 우편번호 address varchar(100) 주소 tel 전화번호 phone 휴대전화번호 birth_year char(4) 출생년도 -학적테이블은 학생 신상에 관한 데이터로서 이름, 주소, 주민등록번호 …내용 -Primary Key는 STU_NO(학번)이고 이 Column은 중복 데이터를 생성 불가능 -어떤 학생이 다른 집으로 이사 가면 과거의 주소는 새로운 주소로 대치 쉽게 배우는 MySQL 5.x
4
-ATTEND 테이블은 수강신청 교과목, 이수구분, 교수코드… 내용
칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 stu_no char(10) PK, FK NN STUDENT 학번 att_year char(4) PK 수강년도 att_term int(1) 수강학기 att_isu 이수구분 sub_code char(5) SUBJECT 교과목코드 prof_code PROFESSOR 교수번호 att_point 이수학점 att_grade int(3) default '0' 취득점수 att_div char(1) default 'N' 수강신청구분 att_jae default '1' 재수강구분 att_date date 수강처리일자 -ATTEND 테이블은 수강신청 교과목, 이수구분, 교수코드… 내용 -Primary Key는 STU_NO(학번), ATT_YEAR(수강년도), ATT_TERM(수강학기), SUB_CODE(교과목코드), PROF_CODE(교수코드), ATT_JAE(재스강구분)코드로 만들어진 조합키 -조합키를 생성하는 이유는 한 학생이 학기마다 여러 과목을 수강신청 쉽게 배우는 MySQL 5.x
5
-FEE 테이블은 입학금, 등록금액, 장학금액 …내용
칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 stu_no varchar(10) PK, FK NN STUDENT 학번 fee_year varchar(4) PK 등록년도 fee_term int(1) 등록학기 fee_enter int(7) 입학금 fee_price 등록금 fee_total NN,default '0' 등록금총액 jang_code char(2) 장학코드 jang_total 장학금액 fee_pay 납부총액 fee_div char(1) NN,default 'N' 등록구분 fee_date date 등록날짜 -FEE 테이블은 입학금, 등록금액, 장학금액 …내용 -Primary Key는 STU_NO(학번), FEE_YEAR(등록년도), FEE_TERM(학기) 코드로 만들어진 조합키 -한 학생이 등록금을 여러 학기 동안 등록금을 내기 때문 쉽게 배우는 MySQL 5.x
6
-SCORE 테이블은 총 신청학점, 취득학점, 평점평균 …. 내용
칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 stu_no char(10) PK, FK NN STUDENT 학번 sco_year char(4) PK 성적취득년도 sco_term int(1) 학기 req_point int(2) 신청학점 take_point 취득학점 exam_avg float(2,1) 평점평균 exam_total int(4) 백분율 총점 sco_div char(1) 성적구분 sco_date date 성적처리일자 -SCORE 테이블은 총 신청학점, 취득학점, 평점평균 …. 내용 -Primary Key는 STU_NO(학번), SCO_YEAR(성적취득년도), SCO_TERM(학기)코드로 만들어진 조합키 -조합키를 생성하는 이유는 한 학생의 성적은 여러 학기 동안 처리 쉽게 배우는 MySQL 5.x
7
표 2.6 PROFESSOR(교수) 테이블의 정보
표 2.5 SUBJECT(교과목) 테이블의 정보 칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 sub_code char(5) PK NN/U 과목번호 sub_name varchar(50) NN 과목명 sub_ename 영문과목명 create_year char(4) 개설년도 -SUBJECT 테이블은 과목명, 개설 년도 … 내용 -Primary Key는 SUB_CODE(과목코드) 표 2.6 PROFESSOR(교수) 테이블의 정보 칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 prof_code char(4) PK NN/U 교수번호 prof_name char(10) NN 교수명 prof_ename varchar(30) 영문교수명 create_date date default null 교수임용일자 -PROFESSOR 테이블은 교수명 같은 내용 -Primary Key는 PROF_CODE(교수코드) 쉽게 배우는 MySQL 5.x
8
-POST 테이블은 학적 현주소의 우편번호를 관리하기 위하여 보관하는 데이터
칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 post_no varchar(6) PK NN/U 우편번호 post_dong char(30) NN 동이름 post_address char(60) 주소 ddd char(4) 지역번호 -POST 테이블은 학적 현주소의 우편번호를 관리하기 위하여 보관하는 데이터 -우편번호, 주소와 전화의 지역번호와 같은 내용 포함 -Primary Key는 post_no(우편번호코드)이다. -현주소의 주소 중에서 시․도, 읍․면․동은 기재하지 않고, 나머지 주소만 기재할 수 있도록 하기 위함이다. 쉽게 배우는 MySQL 5.x
9
표 2.9 DEPARTMENT(학과) 테이블의 정보
표 2.8 CIRCLE(동아리) 테이블의 정보 칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 cir_num int(4) PK NN/U 일련번호 cir_name char(30) NN 동아리명 stu_no char(10) FK STUDENT 학번 stu_name 이름 president char(1) NN,default '0' 회장유무 -CIRCLE 테이블은 학생들의 동아리 활동을 관리하기 위하여 보관하는 데이터 -일련번호, 동아리이름, 학번, 직분 … 내용, Primary Key는 CIR_NUM(일련번호) -President는 회장인 경우에 1, 부회장인 경우 2, 일반회원은 0 값을 가진다. 표 2.9 DEPARTMENT(학과) 테이블의 정보 칼럼이름 데이터타입 Key Type NN/Unique FK table FK column 설명 dept_code int(2) PK NN/U 학과번호 dept_name char(30) NN 학과명 dept_ename varchar(50) 영문학과명 create_date date default null 학과생성일자 -DEPARTMENT 테이블은 학과의 정보를 관리하기 위하여 보관하는 데이터 -학과코드, 학과명, 영문학과명과 같은 내용 -Primary Key는 DEPT_CODE(학과코드) 쉽게 배우는 MySQL 5.x
10
2.2 테이블의 내용 표 2.10 STUDENT 테이블의 예제 데이터 쉽게 배우는 MySQL 5.x STU_NO STU_
2.2 테이블의 내용 표 2.10 STUDENT 테이블의 예제 데이터 STU_NO STU_ NAME STU_ENAME DEPT_CODE GRADE BAN JUYA ID_NUM POST 김유신 박도준 이상길 김유미 정인정 연개소문 박정인 고혜진 김영호 장수인 홍길동 이순신 유하나 김문영 최차영 Kim Yoo-Shin Park Do-Jun Lee Sang-Gil Kim Yoo-Mi Jeung Yin-Jeung Yean Gae-So-Moon Park Jung-In Ko Hea-Jin Kim Young-Ho Jang Soo-In Hong Gil-Dong Lee Sun-Shin Yoo Ha-Na Kim Moon-Young Choi Cha-Young 40 10 50 4 3 2 1 야 주 쉽게 배우는 MySQL 5.x
11
표 2.10 STUDENT 테이블의 예제 데이터 쉽게 배우는 MySQL 5.x STU_NO JUSO TEL PHONE_NO
BIRTH_YEAR 안포리 28번지 16-2번지 안정리 주공APT 107동 504호 덕례리 산 16-1번지 부영7차APT 304동 1210호 280-50번지 985번지 롯데APT 삼익APT 101동 102호 라인APT 207동 309호 금광APT 108동 1101호 해태APT 104동 605호 560-18번지 주공APT 204동 512호 380-2번지 금사리 1427 061) 061) 031) 061) 061) 061) 02) 061) 062) 061) 061) 062) 061) 061) 061) NULL 1981 1978 1975 1983 1987 1986 1989 1988 쉽게 배우는 MySQL 5.x
12
표 2.11 ATTEND 테이블의 예제 데이터 쉽게 배우는 MySQL 5.x STU_NO ATT_ YEAR TERM ISU
SUB_ CODE PROF_ CODE POINT GRADE ATT_DIV JAE ATT_DATE 2006 2007 1 2 3 4 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 99 95 97 98 96 93 92 94 90 91 Y 쉽게 배우는 MySQL 5.x
13
표 2.12 SCORE 테이블의 예제 데이터 쉽게 배우는 MySQL 5.x STU_NO SCO_ YEAR TERM REQ_
POINT TAKE_ POINT_ EXAM_ AVG TOTAL DIV DATE 2006 2007 1 2 18 4.5 4.0 4.4 4.2 0.0 580 552 577 575 472 0 Y N 쉽게 배우는 MySQL 5.x
14
표 2.13 FEE 테이블의 예제 데이터 쉽게 배우는 MySQL 5.x STU_NO FEE _YEAR FEE_ TERM
ENTER PRICE TOTAL JANG_ CODE PAY DIV DATE 2006 2007 2000 2001 1 2 500000 NULL 01 10 11 21 02 NULL 500000 800000 0 300000 Y 쉽게 배우는 MySQL 5.x
15
표 2.14 SUBJCET 테이블의 예제 데이터 쉽게 배우는 MySQL 5.x SUB_CODE SUB_NAME
SUB_ENAME CREATE_YEAR 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 데이터베이스 응용 웹사이트 구축 소프트웨어공학 웹프로그래밍 컴퓨터구조 정보처리실무 UML 운영체제 전자상거래 실무 윈도우즈 프로그래밍 자바프로그래밍 네트워크 프로그래밍 컴포넌트 프로그래밍 Database Application Web Site Construction Software Engineering Web Programming Computer Structure Information Process Practical business UML(Unified Modeling Language) Operating System Electronic Commerce Windows Programming Java Programming Network Programming Component Programming 2002 2003 2001 2005 1998 1999 2004 쉽게 배우는 MySQL 5.x
16
표 2.15 PROFESSOR 테이블의 예제 데이터 쉽게 배우는 MySQL 5.x PROF_CODE PROF_NAME
PROF_ENAME CREATE_DATE 4001 4002 4003 4004 4005 4006 4007 4008 4009 5010 5011 정진용 나인섭 정창부 박상철 정병열 고진광 김영식 최우진 문창수 정종필 최종주 Jung jin-yong Na in-sub Jung chang-boo Park sang-chul Jung byeong-yeol Go jin-gwang Kim young-sik Choi woo-jin Moon chang-soo Jung jong-phil Choi jong-joo 쉽게 배우는 MySQL 5.x
17
표 2.16 POST 테이블의 예제 데이터 쉽게 배우는 MySQL 5.x POST_NO POST_DONG
POST_ADDRESS DDD 화양면 생목동 팽성읍 광양읍 해룡면 서교동 실길1동 운암동 소촌동 광영동 봉강동 남정동 여서동 안풍동 농성동 향교동 영남면 전라남도 여수시 화양면 전라남도 순천시 생목동 경기도 평택시 팽성읍 전라남도 광양시 광양읍 전라남도 순천시 해룡면 전라남도 여수시 서교동 서울특별시 영등포구 신길1동 광주광역시 북구 운암동 광주광역시 광산구 소촌동 전라남도 광양시 광영동 전라남도 여수시 봉강동 전라남도 순천시 남정동 전라남도 여수시 여서동 전라남도 순천시 안풍동 광주광역시 서구 농성동 전라북도 남원시 향교동 전라남도 고흥군 영남면 061 031 02 062 063 601 쉽게 배우는 MySQL 5.x
18
표 2.18 DEPARTMENT 테이블의 예제 데이터
표 2.17 CIRCLE 테이블의 예제 데이터 CIR_NUM CIR_NAME STU_NO STU_NAME PRESIDENT 1 2 3 4 5 6 7 컴맹탈출 Java길라잡이 PHP길라잡이 박정인 유하나 김문영 장수인 정인정 박도준 이살길 표 2.18 DEPARTMENT 테이블의 예제 데이터 DEPT_CODE DEPT_NAME DEPT_ENAME CREATE_DATE 10 20 30 40 50 60 간호학과 경영학과 수학학과 컴퓨터정보학과 정보통신학과 회계학과 Dept. of Nersing Dept. of Management Dept. of Mathematics Dept. of Computer Information Dept. of Information Communication Dept. of Accounting 쉽게 배우는 MySQL 5.x
19
2.3 무결성 규칙 -두 학생은 동일한 학번을 가질 수 없고, ATTEND, FEE 테이블에 있는 모든 학생은 STUDENT 테이블에 존재해야 한다. -각 테이블의 기본 키는 반드시 정의되어야 한다. -각 테이블의 기본 키는 다음과 같다. • STUDENT 테이블의 STU_NO • ATTEND 테이블의 STU_NO, ATT_YEAR, ATT_TERM, SUB_CODE, PROF_ CODE, ATT_JAE로 이루어진 조합 키 • FEE 테이블의 STU_NO, FEE_YEAR, FEE_TERM로 이루어진 조합 키 • SCORE 테이블의 STU_NO, SCO_YEAR, SCO_TERM로 이루어진 조합 키 • SUBJECT 테이블의 SUB_CODE • PROFESSOR 테이블의 PROF_CODE • POST 테이블의 POST_NO • CIRCLE 테이블의 CIR_NUM • DEPARTMENT 테이블의 DEPT_CODE 쉽게 배우는 MySQL 5.x
20
-수강, 등록, 성적 테이블에서 학적 테이블의 참조 -등록테이블의 입학금, 등록총액은 항상 0 이상이다.
-학적 테이블에서 우편번호 테이블의 참조 -수강 테이블에서 교과목, 교수 테이블의 참조 -수강, 등록, 성적 테이블에서 학적 테이블의 참조 -등록테이블의 입학금, 등록총액은 항상 0 이상이다. 쉽게 배우는 MySQL 5.x
Similar presentations