2021数据库系统实践:SQL查询与权限配置

需积分: 0 1 下载量 66 浏览量 更新于2024-06-30 收藏 34KB DOCX 举报
"本资源是一份2021年的数据库系统原理实践任务书,主要涉及SQL语言的使用和数据库管理操作。任务包括学习SQLServer或其他主流数据库的备份方法,以及数据库用户权限的配置。在SQL练习部分,给出了一个基于新冠疫情背景的数据库设计,包括人员、地点、行程、诊断、密切接触者和隔离等表的构建,要求学生编写相应的SQL语句来完成特定查询。" 在数据库系统中,SQL是用于管理和操作数据的标准语言。在这个实践任务中,我们需要使用SQL来完成以下几项工作: 1. **备份与恢复**: - 数据和日志文件的脱机备份是确保数据库安全的重要措施。通常,可以通过数据库管理系统提供的工具或命令行方式进行备份。例如,在SQLServer中,可以使用`BACKUP DATABASE`命令来备份整个数据库,`BACKUP LOG`命令用于备份事务日志。 - 系统备份功能通常涉及完整备份、差异备份和增量备份,这三种方式各有其适用场景,可以根据实际需求选择。 2. **用户与权限管理**: - 在数据库中添加新用户并配置权限是数据库安全管理的关键。可以使用`CREATE USER`语句创建用户,然后通过`GRANT`和`DENY`命令来赋予或限制用户对特定数据库对象的访问权限。 3. **SQL查询**: - 题目要求查询人流量大于30的地点,这可以通过`SELECT`语句和`WHERE`子句实现,如:`SELECT * FROM location WHERE visit_count > 30`,其中`visit_count`代表人流量字段。 - 查询隔离地中隔离人数,可使用`GROUP BY`和`COUNT()`函数,按隔离地点排序:`SELECT loc_id, COUNT(*) as isolation_count FROM isolation GROUP BY loc_id ORDER BY isolation_count DESC`。 4. **数据库设计**: - 依据描述,我们需要创建以下关系表: - `person`表:包含人员编号(id,主码)、全名(fullname)和电话(telephone)。 - `location`表:包含地点编号(id,主码)和地点名称(location_name)。 - `itinerary`表:记录行程信息,主码为行程编号(id),还包括人员编号(p_id)、地点编号(loc_id)、开始时间(s_time)和结束时间(e_time)。 - `diagnose_record`表:记录诊断信息,主码为诊断编号(id),包括人员编号(p_id)、诊断日期(diagnose_date)和诊断结果(result)。 - `close_contact`表:存储密切接触者信息,主码为密切接触编号(id),包括被接触者编号(p_id)、接触日期(contact_date)、接触地点(loc_id)和病例人员编号(case_p_id)。 - `isolation`表:记录隔离信息,主码为隔离编号(id),包括被隔离人员编号(p_id)、开始隔离日期(start_date)、结束隔离日期(end_date)和隔离地点编号(loc_id)。 这些SQL练习旨在帮助学生掌握数据库的基本操作,理解关系数据库模型,以及如何使用SQL语句进行数据查询和分析。通过这个实践任务,学生可以提升在实际环境中应用数据库管理系统的技能。