집 >데이터 베이스 >MySQL 튜토리얼 >데이터베이스 설계의 일반적인 단계 및 예
MySQL은 현재 프로그램 개발에 확실히 사용될 것입니다. MySQL은 오픈 소스 소규모 관계형 데이터베이스 관리 시스템입니다. 개발자는 스웨덴 MySQL AB 회사입니다. 현재 MySQL은 인터넷상의 중소규모 웹사이트에서 널리 사용되고 있습니다. 작은 크기, 빠른 속도, 낮은 총 소유 비용, 특히 오픈 소스의 특성으로 인해 많은 중소 웹 사이트에서는 웹 사이트 총 소유 비용을 줄이기 위해 MySQL을 웹 사이트 데이터베이스로 선택합니다. 이 기사에서는 데이터베이스 설계의 일반적인 단계와 예에 대해 설명합니다.
1. 데이터베이스 설계의 일반적인 과정
1. 개요
강좌 설계 주제 선정, 프로젝트 배경, 강의 설계 보고서 작성 목적, 강의 설계 보고서 구성 등을 포함합니다.
2. 강좌 설계 작업의 요구 사항 분석
2.1 설계 작업
2.2 설계 요구 사항
2.3 요구 사항 설명에 대한 사양 문서
3. 개념적 구조 설계
3.1 개념적 구조 설계 도구(E-R 모델)
3.2XXX 하위 시스템(일부)
3.2.1 하위 시스템 설명
3.2.2점 E-R 다이어그램
3.2.3 설명
3.3YYY 하위 시스템
3.3.1 하위 시스템 설명
3.3.2점 E-R 다이어그램
3.3.3 설명
…
3. 스키마
4.2 뷰 디자인
4.3 최적화
5. 데이터베이스 물리적 설계 및 구현
5.1 데이터베이스 애플리케이션을 위한 하드웨어 및 소프트웨어 환경 소개
5.2 물리적 구조 설계
5.3 design
5.4 데이터베이스 구축
5.5 데이터베이스 테스트 데이터 로드
6. 데이터 작업 요구 사항 및 구현
6.1 데이터 쿼리 작업
6.2 데이터 업데이트 작업
6.3 데이터 유지 작업
6.4 기타
7. 데이터베이스 응용 시스템
8. 디자인 경험
9. 참고 자료
2. 예: 학생 과목 선택 관리 시스템
대학의 교수 관리 시스템에서 학생 과목 선택 관리는 매우 중요한 기능 모듈입니다.
요구사항 분석:
시스템은 학교의 교사 정보, 학생 정보, 전문 정보, 학교에서 제공하는 모든 과목에 대한 정보, 학생 선택 과목에 대한 정보 등을 관리할 수 있어야 합니다. 수강신청 시스템은 주로 시스템 관리자, 교사, 교무처 학생 등 세 가지 유형의 사용자 요구 사항을 충족합니다. 가지고 있는 작업 권한과 작업 내용이 다릅니다. 구체적인 수요 분석은 다음과 같습니다.
시스템 관리자
학생의 기본 개인정보를 관리하고, 학생의 개인정보를 추가, 삭제, 변경합니다.
학생정보에는...
교사의 기본 개인정보를 관리하고, 교사의 개인정보 추가, 삭제, 수정이 가능합니다.
교사 정보에는...
강의의 기본 개인정보를 유지하고, 강의의 개인정보 추가, 삭제, 수정이 가능합니다.
코스 정보에는...
학생 사용자
개인 정보 쿼리 및 수정이 포함됩니다.
교과목 선택 작업 수행
학생은 자신이 선택한 과목의 정보와 이전에 선택한 과목의 성적 정보를 확인할 수 있습니다.
교사 사용자
개인정보 조회 및 수정
강좌 종료 후 결과 등록
교사는 자신의 강의 일정을 확인할 수 있습니다.
데이터베이스 개념적 구조 설계:
개념적 구조 설계를 위한 일반적인 도구는 ER 다이어그램입니다. 다음 단계에 따라 완료하세요.
데이터 추상화(추상화 엔터티). 각 엔터티의 속성에 대한 다이어그램을 그립니다.
ER 다이어그램을 디자인합니다. 엔터티와 해당 연결을 찾아 ER 다이어그램을 그립니다.
별도의 ER 다이어그램을 병합하여 예비 ER 다이어그램을 생성하세요.
글로벌 ER 다이어그램. 예비 ER 다이어그램에 각 엔터티의 속성을 추가하여 가능한 로컬 충돌(속성 충돌, 명명 충돌 및 구조적 충돌 포함)을 제거하여 글로벌 ER 다이어그램을 형성합니다.
데이터베이스 논리 구조 설계:
먼저 개념 모델 ER 다이어그램의 엔터티와 관계를 데이터 모델로 변환합니다. RDBMS에서는 관계형 스키마로 변환하고 관계형 스키마의 속성과 기본 키를 결정합니다. .
ER 그래프를 관계형 데이터 모델로 변환하는 기본 규칙은 다음과 같습니다.
엔티티는 관계형 스키마로 변환됩니다. 엔터티의 속성은 관계의 속성이고 엔터티의 키는 엔터티의 키입니다. 관계.
엔터티 간의 관계가 1:1인 경우 관계는 별도로 관계 스키마로 변환되지 않습니다. 다른 관계 스키마의 키와 관계의 속성은 해당 관계 스키마 중 하나에 추가되어야 합니다. 두 개의 엔터티.
엔터티 간의 관계가 1:n인 경우 관계는 별도로 관계 스키마로 변환되지 않습니다. 1측 엔터티에 해당하는 관계 스키마의 키 및 연락처 속성을 에 해당하는 관계 스키마에 추가해야 합니다. n측 엔터티.
엔터티 간의 관계가 m:n인 경우 관계도 관계 모드로 변환됩니다. 해당 속성은 양쪽 엔터티 유형의 코드에 관계의 속성을 더한 것이며, 관계의 키는 조합입니다. 양쪽 끝에 엔터티 코드가 있습니다.
두 번째로 동일한 기본 키를 사용하여 필요한 관계 패턴 병합을 수행합니다.
관계 최적화
정규화 이론에 따라 관계형 데이터 모델이 최적화됩니다. 세 번째 정규형으로 정규화되었습니다.
데이터베이스 물리적 설계 및 구현:
주로 다음 작업이 포함됩니다.
데이터베이스 생성
기본 테이블 생성, 제약 조건 설정, 기본 테이블 관리.
색인을 생성하고 관리하세요. (DBMS는 기본 키에 대한 인덱스를 자동으로 생성합니다. 쿼리 효율성을 높이려면 인덱스를 생성하세요.)
뷰를 생성하고 관리하세요.
데이터베이스에 데이터를 입력하세요.
SQL 문을 사용하여 쿼리, 수정, 삭제 및 기타 데이터 작업을 수행하세요. (데이터베이스를 어떻게 조작할지 먼저 생각해보고 나중에 구현해도 됩니다)
저장 프로시저, 트리거 등을 작성하고 디버깅을 통과합니다. (예를 들어 특정 학번의 학생이 학생 테이블에서 삭제되면 과목 선택 테이블의 과목 선택 기록이 자동으로 삭제되도록 트리거를 생성합니다.)
데이터베이스 운영 및 유지 관리:
주로 다음 내용을 포함합니다
데이터베이스 백업 및 복구
데이터베이스의 보안 및 무결성 제어
데이터베이스의 성능 모니터링, 분석 및 개선
다음 명령문을 통해 데이터베이스에 액세스하고 데이터를 조작합니다.
학생 테이블의 성별 및 연령 필드에 제약 조건을 추가합니다.
속성 열 "등록 시간"을 추가합니다.
"전문" 데이터 유형을 수정하세요.
강좌 이름이 고유한 값을 가져야 한다는 제약 조건을 추가하세요.
강좌 선택 테이블의 "학생 번호" 및 "강좌 번호" 열에 색인을 생성합니다.
과목선택표의 "직업번호"와 "과목번호"에 대한 색인을 생성합니다.
학생 과목 선택 시스템에 4개의 학과가 있다고 가정합니다. 각 학과의 교습 관리 담당자가 해당 학과의 학생 정보를 쉽게 볼 수 있도록 각 학과에서 학생 보기를 생성합니다.
학생의 강좌 선택을 반영하는 뷰를 만듭니다.
학생들은 학번이나 이름으로 과목 선택 정보를 확인할 수 있습니다.
학생들은 학번이나 이름을 통해 기본정보를 확인할 수 있습니다.
특정 교사가 가르친 특정 강좌의 성적표를 나열하고 오름차순 또는 내림차순으로 표시합니다.
특정 교사가 가르치는 모든 강좌 정보를 나열합니다.
학생이 받은 학점정보를 조회해보세요.
특정 강좌에 대한 교사의 평균 점수, 최고 점수, 최저 점수에 대한 통계입니다.
새 강좌를 추가하세요.
특정 강좌의 학점을 수정하세요.
삭제 트리거 생성 학생 테이블에서 특정 "학생 번호"를 가진 학생이 삭제되면 과목 선택 테이블에서 해당 학생의 과목 선택 기록이 자동으로 삭제됩니다. 즉, 해당 학생에 대한 삭제 트리거가 생성됩니다. 학생 테이블과 코스 선택을 실현하는 테이블입니다.
삭제 트리거 생성 강좌일정에서 특정 "교과목 번호"가 포함된 강좌가 삭제되면 강좌 선택 목록에 있는 해당 강좌의 모든 기록이 자동으로 삭제됩니다. 학생 테이블과 과목 선택 테이블의 캐스케이드 삭제를 구현하기 위한 과목 일정입니다.
교과목 선택 테이블에 레코드를 삽입할 때, 학생 테이블에 학번이 있는 학생이 있는지, 과목 테이블에 해당 교과목이 있는지 쿼리합니다. 둘 다 삽입할 수 있으며, 그렇지 않으면 삽입이 거부됩니다.
"학생과목선택시스템" 데이터베이스를 로컬 디스크 E드라이브 하위 BACKUPDB 폴더에 백업하세요.
sp_addumpdevice 'disk','학생강좌선택시스템_bak','E:BACKUPDB 학생강좌선택시스템_bak'
BACKUP DATABASE 학생강좌선택시스템 TO DISK='학생강좌선택시스템_bak'
도서대출관리시스템
요건분석 :
시스템은 다음 기능을 구현해야 합니다. 사서는 신간 추가, 도서 정보 수정, 도서 대출 등록 처리, 반납 등록, 만료 도서 처리, 분실 도서 처리, 독자 대출 증명서 정보 유지 관리 등 도서 정보를 관리할 수 있습니다. 등. . 독자는 도서 대출, 도서 반납, 도서 정보 확인, 도서 정보 대출 등을 할 수 있습니다. 구체적인 요구사항은 다음과 같습니다.
도서 정보 관리: 각 도서 정보 입력, 도서 정보 유지 등
독자 정보 관리: 독자 정보를 유지하고 실제 필요에 따라 독자를 수정, 업데이트, 삭제합니다.
대출 관리: 도서 대출, 도서 반납, 만료된 도서 반납 등을 포함합니다.
도서 대출 관리 시스템에는 크게 두 가지 유형의 사용자가 있습니다.
관리자: 도서 유형, 도서 정보 업데이트, 독자 도서 대출 및 반납 처리 등 기본 도서 데이터를 유지 관리합니다.
리더 사용자 : 도서 정보 확인 및 도서 대출이 가능합니다.
의미: 도서관의 도서 현황 및 관리 규정에 따라 도서 유형별로 다양한 도서가 있으며, 동일한 도서를 여러 번 대출할 수 있으며, 각 독자가 여러 권의 도서를 대출할 수 있습니다. 도서별 대출기간은 1개월입니다.
데이터베이스의 개념적 구조 설계:
3단계로 완료: 1) 엔터티 추상화 2) 추상화 및 현실과 연결) 엔터티의 속성 및 키 결정
책 유형(도서 분류 번호, 도서 분류 포함) 이름, 설명 정보.
도서(도서 번호, 책 제목, 저자, 출판사, 가격 포함).
리더: ID 번호, 이름, 성별, 부서, 클래스, ID 상태(유효 및 무효 포함), 연락처 정보 등
독자와 책의 관계는 m:n이고, 책 종류와 책의 관계는 1:n이며, 독자와 책 종류의 관계는 없습니다.
데이터베이스 논리 구조 설계:
ER 다이어그램을 관계형 모델로 변환합니다.
관계형 모델 최적화
제3정규형으로 정규화
데이터베이스 물리적 설계 및 구현:
주로 다음 작업을 포함합니다:
데이터베이스 생성
기본 테이블 생성, 제약 조건 설정, 기본 테이블 관리.
색인을 생성하고 관리하세요. (DBMS는 기본 키에 대한 인덱스를 자동으로 생성합니다. 쿼리 효율성을 높이려면 인덱스를 생성하세요.)
뷰를 생성하고 관리하세요.
데이터베이스에 데이터를 입력하세요.
SQL 문을 사용하여 쿼리, 수정, 삭제 및 기타 데이터 작업을 수행하세요. (데이터베이스를 어떻게 조작할지 먼저 생각하고 나중에 구현해도 됩니다.)
저장 프로시저, 트리거 등을 작성하고 디버깅을 통과합니다.
데이터베이스의 데이터 조작
관리자의 분류 관리를 용이하게 하기 위해 이제 여러 도서 유형에 대한 보기를 생성해야 합니다.
독자 대출 현황 테이블을 생성합니다.
대출 테이블에서 문서 번호와 대출 날짜에 대한 결합 하위 인덱스를 만듭니다.
도서 테이블에 도서 분류 번호, 도서 제목, 출판사 필드에 대한 색인을 생성합니다.
차용 테이블에 삽입된 "문서 번호"가 리더 테이블에 존재하는지 확인하기 위해 차용 테이블에 대한 삽입 트리거를 생성합니다. 존재하지 않으면 차용 테이블에 차용 정보 레코드가 삽입되지 않습니다.
차용 테이블에 업데이트 트리거를 생성하고 수동으로 수정할 수 없도록 차용 테이블의 "차용 날짜" 열을 모니터링하세요.
리더 테이블과 빌린 테이블의 계단식 삭제를 실현하려면 리더 테이블에 삭제 트리거를 생성하세요.
스포츠 게임 관리 시스템
요구 사항 분석:
스포츠 게임을 관리하기 위한 컴퓨터를 도입하면 선수는 스포츠 경기 관리 시스템에서 자신의 경기 이벤트와 경기 결과를 확인할 수 있습니다. 시스템을 통한 대회 이벤트 등 스포츠 대회 관리 시스템은 선수, 경기 종목, 각종 대회의 참가 데이터를 저장합니다.
스포츠 대회 관리 시스템의 주요 관리 대상에는 대표팀, 선수, 대회 이벤트 등이 포함됩니다.
이 시스템의 기본 규정은 다음과 같습니다. 대표팀에는 여러 명의 선수가 포함되며, 선수는 하나의 대표팀에만 속할 수 있으며, 한 선수는 여러 경기 종목에 참가할 수 있으며, 한 경기 종목에는 여러 선수가 참가할 수 있습니다. ; 각 대회 종료 후 결과에 따라 순위가 매겨지며, 예를 들어 1위, 2위, 3위 선수에게 해당 포인트가 부여됩니다. 은 각각 3점, 2점, 1점이며, 그 외 순위를 획득한 선수의 점수는 0점의 경우 대표팀 전원의 점수를 합산하여 각 대표팀의 총점을 합산하여 획득한다. 상위부터 하위까지 각 대표팀의 순위를 획득합니다.
시스템 요구 사항을 단순화하기 위해 이 스포츠 회의 관리 시스템은 육상 경기 관리만 고려하고 대표 팀 간의 관계, 경기 이벤트만 고려하며 심판 점수 배열, 경기 시간, 장소 등은 고려하지 않습니다. , 등.
데이터베이스 개념구조 설계 :
대표팀 : 대표선수, 팀명, 팀리더, 총점, 총순위
선수 : 선수번호, 이름, 성별, 나이
대회항목 : 프로젝트 번호, 프로젝트 카테고리, 프로젝트 이름, 등급 단위.
데이터베이스 논리 구조 설계:
4개의 테이블,
결과, 포인트 및 순위를 포함한 대회 세부 정보
위는 데이터베이스 설계의 일반적인 단계와 예입니다. 데이터베이스를 디자인하는 방법에 대한 아이디어를 얻었습니다.
관련 튜토리얼:
데이터베이스 복원, 복원 중이라는 데이터베이스 프롬프트 처리 방법
위 내용은 데이터베이스 설계의 일반적인 단계 및 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!