个人简历信息管理系统数据库设计报告
个人简历信息管理系统数据库设计报告
摘要
本文旨在设计一个个人简历信息管理系统的数据库,并通过SQL Server实现其设计和实现过程。本数据库包括两个实体:人员和联系方式,其中人员实体包括姓名、性别、出生日期、身份证号等属性;联系方式实体包括电话和邮箱两个属性。两个实体之间是一对多的关系,即一个人员可以有多个联系方式。为保证数据的完整性和安全性,我们在数据库中设置主键、外键、唯一约束、默认值约束、检查约束和自动编号的标识列等,并对数据库进行备份和权限管理。
关键词
个人简历;数据库设计;SQL Server;数据完整性;数据安全性;权限管理
1. 数据库需求分析
随着互联网的普及,越来越多的人开始通过网络来发布和搜索工作信息。而在求职过程中,个人简历是必不可少的一部分。因此,设计一个可以管理个人简历信息的数据库是很有必要的。本数据库旨在管理个人简历信息,包括姓名、性别、出生日期、身份证号、电话、邮箱等信息。要求能够对这些信息进行增删改查操作,并保证数据的完整性和安全性。
2. 数据库设计
2.1 数据库概念结构设计
通过分析需求,我们可以确定两个实体:人员和联系方式。人员实体包括姓名、性别、出生日期、身份证号等属性;联系方式实体包括电话和邮箱两个属性。两个实体之间是一对多的关系,即一个人员可以有多个联系方式。
2.2 数据库逻辑结构设计
根据概念结构设计,我们可以将人员实体和联系方式实体转换为关系模式。其中人员实体对应的关系模式为:
人员(id, name, gender, birthdate, id_number)
其中id为主键,name、gender、birthdate和id_number为属性。
联系方式实体对应的关系模式为:
联系方式(id, phone, email)
其中id为主键,phone和email为属性。
2.3 数据库物理结构设计
在SQL Server中创建数据库,命名为“DB_学号”。然后根据逻辑结构设计,创建两个数据表:人员表和联系方式表。具体的SQL代码如下:
-- 创建人员表
CREATE TABLE dbo.person (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
gender VARCHAR(10) NOT NULL,
birthdate DATE NOT NULL,
id_number VARCHAR(18) NOT NULL
);
-- 创建联系方式表
CREATE TABLE dbo.contact (
id INT PRIMARY KEY,
phone VARCHAR(20),
email VARCHAR(50)
);
3. 数据库维护
为保证数据的完整性,我们需要在数据库中设置主键、外键、唯一约束、默认值约束、检查约束和自动编号的标识列等。具体的SQL代码如下:
-- 设置主键
ALTER TABLE dbo.person ADD CONSTRAINT PK_person PRIMARY KEY (id);
ALTER TABLE dbo.contact ADD CONSTRAINT PK_contact PRIMARY KEY (id);
-- 设置自动编号
ALTER TABLE dbo.person ADD CONSTRAINT DF_person_id DEFAULT (NEXT VALUE FOR seq_person_id) FOR id;
ALTER TABLE dbo.contact ADD CONSTRAINT DF_contact_id DEFAULT (NEXT VALUE FOR seq_contact_id) FOR id;
-- 设置唯一约束
ALTER TABLE dbo.person ADD CONSTRAINT UQ_person_id_number UNIQUE (id_number);
-- 设置外键
ALTER TABLE dbo.contact ADD CONSTRAINT FK_contact_person FOREIGN KEY (id) REFERENCES dbo.person (id);
-- 设置检查约束
ALTER TABLE dbo.person ADD CONSTRAINT CK_person_gender CHECK (gender IN ('男', '女'));
4. 数据库备份
为保证数据的安全性,我们需要对数据库进行备份。具体的备份过程如下图所示:
[图片]
5. 数据库操作
通过DML语句,我们可以对数据库进行增删改查操作。具体的操作如下:
-- 插入数据
INSERT INTO dbo.person (id, name, gender, birthdate, id_number) VALUES (1003, '本紫', '男', '1990-01-01', '410211199901011234');
INSERT INTO dbo.person (id, name, gender, birthdate, id_number) VALUES (1004, '李兰', '女', '1987-12-12', '320602198712121234');
INSERT INTO dbo.person (id, name, gender, birthdate, id_number) VALUES (1005, '易祺瑞', '男', '1985-11-11', '440308198511111234');
INSERT INTO dbo.person (id, name, gender, birthdate, id_number) VALUES (1006, '周笑临', '男', '1978-12-09', '530112197812091234');
INSERT INTO dbo.person (id, name, gender, birthdate, id_number) VALUES (1007, '余囡', '女', '1966-03-30', '620402196603301234');
INSERT INTO dbo.contact (id, phone, email) VALUES (1003, '521', 'sutt@qq.com');
INSERT INTO dbo.contact (id, phone, email) VALUES (1004, '520', 'syt@qq.com');
INSERT INTO dbo.contact (id, phone, email) VALUES (1005, '519', 'sew@qq.com');
INSERT INTO dbo.contact (id, phone, email) VALUES (1006, '518', 'yut@qq.com');
INSERT INTO dbo.contact (id, phone, email) VALUES (1007, '517', 'yyuyu'yyuyyuy@qq.com');
-- 查询数据
SELECT * FROM dbo.person;
SELECT * FROM dbo.contact;
-- 修改数据
UPDATE dbo.person SET name = '本紫紫' WHERE id = 1003;
UPDATE dbo.contact SET phone = '123456' WHERE id = 1003;
-- 删除数据
DELETE FROM dbo.contact WHERE id = 1003;
DELETE FROM dbo.person WHERE id = 1003;
6. 存储过程
我们可以使用SQL语言创建存储过程,并在JAVA代码中对其进行调用。具体的存储过程如下:
-- 创建存储过程
CREATE PROCEDURE dbo.get_person_by_id (@id INT)
AS
BEGIN
SELECT * FROM dbo.person WHERE id = @id;
END;
-- 调用存储过程
EXEC dbo.get_person_by_id @id = 1004;
7. 触发器
我们可以使用SQL语言创建触发器,并在程序运行过程中触发使其执行。具体的触发器如下:
-- 创建触发器
CREATE TRIGGER trg_person_insert
ON dbo.person
AFTER INSERT
AS
BEGIN
INSERT INTO dbo.contact (id, phone, email) VALUES (INSERTED.id, '', '');
END;
-- 触发触发器
INSERT INTO dbo.person (id, name, gender, birthdate, id_number) VALUES (1008, '张三', '男', '1990-01-01', '410211199901011235');
8. 数据库安全
为保证数据库的安全性,我们需要在SQL Server中创建SQL Server身份验证的登录名“SQLUser01”,密码为“abc@123”,默认数据库为我们自己创建的这个数据库。具体的SQL代码如下:
-- 创建登录名
CREATE LOGIN SQLUser01 WITH PASSWORD = 'abc@123', DEFAULT_DATABASE = DB_学号;
然后我们需要在本数据库中创建1个SQL Server身份验证的数据库用户账户“db_user01”,并将其映射到登录名“SQLUser01”。具体的SQL代码如下:
-- 创建数据库用户
CREATE USER db_user01 FOR LOGIN SQLUser01;
最后,我们需要创建自定义角色“role01”,并且将数据库用户“db_user01”添加为该自定义角色的成员,然后为该角色授予相应的权限。具体的SQL代码如下:
-- 创建自定义角色
CREATE ROLE role01;
-- 将用户添加到角色中
EXEC sp_addrolemember 'role01', 'db_user01';
-- 授予权限
GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.person TO role01;
GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.contact TO role01;
最后,我们可以从角色“role1”收回部分权限。具体的SQL代码如下:
-- 收回权限
REVOKE DELETE ON dbo.contact FROM role01;
以上就是本数据库的设计和实现过程。通过以上步骤,我们可以创建一个完整的个人简历数据库,并保证其数据的完整性和安全性。
原文地址: https://www.cveoy.top/t/topic/oAs0 著作权归作者所有。请勿转载和采集!