2021数据库系统实战:SQLServer任务与关系表构建

需积分: 0 4 下载量 43 浏览量 更新于2024-08-04 收藏 40KB DOCX 举报
本次实践任务书主要涉及数据库系统原理的学习与应用,具体分为软件功能练习和SQL语句操作两部分。首先,在软件功能学习部分,学生需要熟悉并掌握主流关系数据库管理系统(如SQL Server),重点是理解备份和恢复策略。任务1要求学生实际操作数据和日志文件的脱机备份,以及系统备份功能,确保备份过程的完整性和安全性。此外,还要创建用户并配置权限,通过实际尝试验证权限设置的有效性。 在SQL练习部分,情境设定了一个疫情期间的疫情追踪系统,其中包含地点、人员、行程、诊断结果、密切接触者以及隔离等关键信息。学生需要在数据库管理系统(DBMS)中设计并实现以下关系表: 1. 人员表(person):包括人员编号(主码)、姓名和电话,用于存储个人基本信息。 SQL语句示例: ```sql CREATE TABLE person ( id INT PRIMARY KEY, fullname VARCHAR(20), telephone CHAR(11) ); ``` 2. 地点表(location):包含地点编号和地点名称,作为其他表的外键。 ```sql CREATE TABLE location ( id INT PRIMARY KEY, location_name VARCHAR(20) ); ``` 3. 行程表(itinerary):记录人员行程,包含行程编号、人员编号、地点编号、开始时间和结束时间。 ```sql CREATE TABLE itinerary ( id INT PRIMARY KEY, p_id INT, loc_id INT, s_datetime DATETIME, e_datetime DATETIME, FOREIGN KEY (p_id) REFERENCES person(id), FOREIGN KEY (loc_id) REFERENCES location(id) ); ``` 4. 诊断表(diagnose_record):包含诊断编号、人员编号、诊断日期和结果,结果可能为新冠确诊、无症状感染者或正常。 ```sql CREATE TABLE diagnose_record ( id INT PRIMARY KEY, p_id INT, diagnose_date DATETIME, result INT, FOREIGN KEY (p_id) REFERENCES person(id) ); ``` 5. 密切接触者表(close_contact):记录密切接触情况,有被接触者编号、接触日期、地点编号和病例人员编号。 ```sql CREATE TABLE close_contact ( id INT PRIMARY KEY, p_id INT, contact_date DATETIME, loc_id INT, case_p_id INT, FOREIGN KEY (p_id) REFERENCES person(id), FOREIGN KEY (loc_id) REFERENCES location(id), FOREIGN KEY (case_p_id) REFERENCES diagnose_record(id) ); ``` 6. 隔离表(isolation_):记录隔离信息,包含隔离编号、被隔离人员编号、隔离开始和结束日期、隔离地点编号以及隔离状态。 ```sql CREATE TABLE isolation_ ( id INT PRIMARY KEY, p_id INT, start_isolation_date DATETIME, end_isolation_date DATETIME, loc_id INT, isolation_status VARCHAR(20), FOREIGN KEY (p_id) REFERENCES person(id), FOREIGN KEY (loc_id) REFERENCES location(id) ); ``` 整个任务要求学生综合运用数据库理论知识,设计合理的数据结构,并通过实际操作加深对SQL语言的理解,同时锻炼数据管理的能力。实践中需注意完整性约束、关联关系的定义以及备份恢复策略的运用。完成后的实践报告应包含每个步骤的详细过程和所用到的SQL语句,以及可能遇到的问题和解决方案。