黑狐家游戏

MIs数据库设计上机报告,mis 数据库

欧气 2 0

标题:MIS 数据库设计上机报告

一、引言

随着信息技术的飞速发展,数据库管理系统在企业管理和信息处理中扮演着越来越重要的角色,本报告将详细介绍一个基于 MIS 数据库的设计过程,包括需求分析、概念结构设计、逻辑结构设计和物理结构设计等阶段,通过本次上机实践,我们深入了解了数据库设计的基本原则和方法,提高了自己的数据库设计能力和实践操作能力。

二、需求分析

(一)业务背景

本系统是一个企业管理信息系统,主要用于管理企业的客户信息、产品信息、订单信息和员工信息等,系统需要能够实现客户信息的录入、查询、修改和删除,产品信息的录入、查询、修改和删除,订单信息的录入、查询、修改和删除,以及员工信息的录入、查询、修改和删除等功能。

(二)数据需求

根据业务需求,我们可以确定系统需要管理以下数据:

1、客户信息:包括客户编号、客户名称、客户地址、客户电话和客户邮箱等。

2、产品信息:包括产品编号、产品名称、产品价格、产品库存和产品描述等。

3、订单信息:包括订单编号、客户编号、产品编号、订单数量、订单金额和订单日期等。

4、员工信息:包括员工编号、员工姓名、员工性别、员工年龄、员工职位和员工工资等。

(三)功能需求

根据业务需求,我们可以确定系统需要实现以下功能:

1、客户信息管理:能够实现客户信息的录入、查询、修改和删除等功能。

2、产品信息管理:能够实现产品信息的录入、查询、修改和删除等功能。

3、订单信息管理:能够实现订单信息的录入、查询、修改和删除等功能。

4、员工信息管理:能够实现员工信息的录入、查询、修改和删除等功能。

5、报表生成:能够根据客户信息、产品信息、订单信息和员工信息等生成相应的报表。

三、概念结构设计

(一)E-R 图设计

根据需求分析,我们可以绘制出系统的 E-R 图,E-R 图是一种用于描述数据库概念结构的图形工具,它通过实体、属性和关系等元素来表示数据库中的数据和数据之间的联系。

(二)E-R 图转换为关系模式

将 E-R 图转换为关系模式是数据库设计的重要步骤之一,关系模式是一种用于描述数据库逻辑结构的数学模型,它通过关系、属性和域等元素来表示数据库中的数据和数据之间的联系。

根据 E-R 图,我们可以将其转换为以下关系模式:

1、客户(客户编号,客户名称,客户地址,客户电话,客户邮箱)

2、产品(产品编号,产品名称,产品价格,产品库存,产品描述)

3、订单(订单编号,客户编号,产品编号,订单数量,订单金额,订单日期)

4、员工(员工编号,员工姓名,员工性别,员工年龄,员工职位,员工工资)

四、逻辑结构设计

(一)关系模式规范化

关系模式规范化是数据库设计的重要步骤之一,关系模式规范化的目的是消除关系模式中的冗余和异常,提高关系模式的性能和可靠性。

根据关系模式,我们可以对其进行规范化处理,得到以下关系模式:

1、客户(客户编号,客户名称,客户地址,客户电话,客户邮箱)

2、产品(产品编号,产品名称,产品价格,产品库存,产品描述)

3、订单(订单编号,客户编号,产品编号,订单数量,订单金额,订单日期)

4、员工(员工编号,员工姓名,员工性别,员工年龄,员工职位,员工工资)

(二)索引设计

索引是一种用于提高数据库查询性能的数据库对象,在数据库设计中,我们需要根据查询需求和数据特点,合理地设计索引,以提高数据库的查询性能。

根据查询需求和数据特点,我们可以对以下字段建立索引:

1、客户(客户编号,客户名称,客户地址,客户电话,客户邮箱):客户编号

2、产品(产品编号,产品名称,产品价格,产品库存,产品描述):产品编号

3、订单(订单编号,客户编号,产品编号,订单数量,订单金额,订单日期):订单编号,客户编号,产品编号

4、员工(员工编号,员工姓名,员工性别,员工年龄,员工职位,员工工资):员工编号

五、物理结构设计

(一)存储结构设计

存储结构是指数据库在磁盘上的存储方式,在数据库设计中,我们需要根据数据库的特点和查询需求,合理地设计存储结构,以提高数据库的查询性能。

根据数据库的特点和查询需求,我们可以采用以下存储结构:

1、客户(客户编号,客户名称,客户地址,客户电话,客户邮箱):采用 B 树索引存储客户编号,采用堆存储客户其他信息。

2、产品(产品编号,产品名称,产品价格,产品库存,产品描述):采用 B 树索引存储产品编号,采用堆存储产品其他信息。

3、订单(订单编号,客户编号,产品编号,订单数量,订单金额,订单日期):采用 B 树索引存储订单编号,采用 B 树索引存储客户编号,采用 B 树索引存储产品编号,采用堆存储订单其他信息。

4、员工(员工编号,员工姓名,员工性别,员工年龄,员工职位,员工工资):采用 B 树索引存储员工编号,采用堆存储员工其他信息。

(二)日志文件设计

日志文件是用于记录数据库操作的文件,在数据库设计中,我们需要根据数据库的特点和查询需求,合理地设计日志文件,以提高数据库的恢复性能。

根据数据库的特点和查询需求,我们可以采用以下日志文件设计:

1、采用redo 日志记录数据库的修改操作:redo 日志是用于记录数据库修改操作的日志文件,在数据库修改操作时,系统会将修改操作记录到 redo 日志中,以便在数据库恢复时能够恢复到修改前的状态。

2、采用undo 日志记录数据库的回滚操作:undo 日志是用于记录数据库回滚操作的日志文件,在数据库回滚操作时,系统会将回滚操作记录到 undo 日志中,以便在数据库恢复时能够恢复到回滚前的状态。

六、数据库实施

(一)创建数据库

在数据库管理系统中,我们可以使用 SQL 语句创建数据库,以下是创建数据库的 SQL 语句:

CREATE DATABASE mis_database;

(二)创建表

在数据库管理系统中,我们可以使用 SQL 语句创建表,以下是创建表的 SQL 语句:

CREATE TABLE customer (
    customer_id INT PRIMARY KEY,
    customer_name VARCHAR(50),
    customer_address VARCHAR(100),
    customer_phone VARCHAR(20),
    customer_email VARCHAR(50)
);
CREATE TABLE product (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(50),
    product_price DECIMAL(10, 2),
    product_stock INT,
    product_description VARCHAR(200)
);
CREATE TABLE order (
    order_id INT PRIMARY KEY,
    customer_id INT,
    product_id INT,
    order_quantity INT,
    order_amount DECIMAL(10, 2),
    order_date DATE,
    FOREIGN KEY (customer_id) REFERENCES customer(customer_id),
    FOREIGN KEY (product_id) REFERENCES product(product_id)
);
CREATE TABLE employee (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(50),
    employee_gender VARCHAR(10),
    employee_age INT,
    employee_position VARCHAR(50),
    employee_salary DECIMAL(10, 2)
);

(三)插入数据

在数据库管理系统中,我们可以使用 SQL 语句插入数据,以下是插入数据的 SQL 语句:

INSERT INTO customer (customer_id, customer_name, customer_address, customer_phone, customer_email)
VALUES (1, '张三', '北京市朝阳区', '13812345678', 'zhangsan@163.com');
INSERT INTO product (product_id, product_name, product_price, product_stock, product_description)
VALUES (1, '笔记本电脑', 5999.00, 100, '高性能笔记本电脑');
INSERT INTO order (order_id, customer_id, product_id, order_quantity, order_amount, order_date)
VALUES (1, 1, 1, 1, 5999.00, '2023-01-01');
INSERT INTO employee (employee_id, employee_name, employee_gender, employee_age, employee_position, employee_salary)
VALUES (1, '李四', '男', 30, '经理', 10000.00);

(四)创建视图

在数据库管理系统中,我们可以使用 SQL 语句创建视图,以下是创建视图的 SQL 语句:

CREATE VIEW customer_view AS
SELECT customer_id, customer_name, customer_address, customer_phone, customer_email
FROM customer;
CREATE VIEW product_view AS
SELECT product_id, product_name, product_price, product_stock, product_description
FROM product;
CREATE VIEW order_view AS
SELECT order_id, customer_id, product_id, order_quantity, order_amount, order_date
FROM order;
CREATE VIEW employee_view AS
SELECT employee_id, employee_name, employee_gender, employee_age, employee_position, employee_salary
FROM employee;

(五)创建存储过程

在数据库管理系统中,我们可以使用 SQL 语句创建存储过程,以下是创建存储过程的 SQL 语句:

CREATE PROCEDURE sp_insert_customer
    @customer_name VARCHAR(50),
    @customer_address VARCHAR(100),
    @customer_phone VARCHAR(20),
    @customer_email VARCHAR(50)
AS
BEGIN
    INSERT INTO customer (customer_name, customer_address, customer_phone, customer_email)
    VALUES (@customer_name, @customer_address, @customer_phone, @customer_email);
END
CREATE PROCEDURE sp_insert_product
    @product_name VARCHAR(50),
    @product_price DECIMAL(10, 2),
    @product_stock INT,
    @product_description VARCHAR(200)
AS
BEGIN
    INSERT INTO product (product_name, product_price, product_stock, product_description)
    VALUES (@product_name, @product_price, @product_stock, @product_description);
END
CREATE PROCEDURE sp_insert_order
    @customer_id INT,
    @product_id INT,
    @order_quantity INT,
    @order_amount DECIMAL(10, 2),
    @order_date DATE
AS
BEGIN
    INSERT INTO order (customer_id, product_id, order_quantity, order_amount, order_date)
    VALUES (@customer_id, @product_id, @order_quantity, @order_amount, @order_date);
END
CREATE PROCEDURE sp_insert_employee
    @employee_name VARCHAR(50),
    @employee_gender VARCHAR(10),
    @employee_age INT,
    @employee_position VARCHAR(50),
    @employee_salary DECIMAL(10, 2)
AS
BEGIN
    INSERT INTO employee (employee_name, employee_gender, employee_age, employee_position, employee_salary)
    VALUES (@employee_name, @employee_gender, @employee_age, @employee_position, @employee_salary);
END

(六)创建触发器

在数据库管理系统中,我们可以使用 SQL 语句创建触发器,以下是创建触发器的 SQL 语句:

CREATE TRIGGER tr_insert_customer
ON customer
AFTER INSERT
AS
BEGIN
    INSERT INTO customer_view (customer_id, customer_name, customer_address, customer_phone, customer_email)
    SELECT customer_id, customer_name, customer_address, customer_phone, customer_email
    FROM inserted;
END
CREATE TRIGGER tr_insert_product
ON product
AFTER INSERT
AS
BEGIN
    INSERT INTO product_view (product_id, product_name, product_price, product_stock, product_description)
    SELECT product_id, product_name, product_price, product_stock, product_description
    FROM inserted;
END
CREATE TRIGGER tr_insert_order
ON order
AFTER INSERT
AS
BEGIN
    INSERT INTO order_view (order_id, customer_id, product_id, order_quantity, order_amount, order_date)
    SELECT order_id, customer_id, product_id, order_quantity, order_amount, order_date
    FROM inserted;
END
CREATE TRIGGER tr_insert_employee
ON employee
AFTER INSERT
AS
BEGIN
    INSERT INTO employee_view (employee_id, employee_name, employee_gender, employee_age, employee_position, employee_salary)
    SELECT employee_id, employee_name, employee_gender, employee_age, employee_position, employee_salary
    FROM inserted;
END

七、数据库测试

(一)功能测试

在数据库管理系统中,我们可以使用 SQL 语句对数据库进行功能测试,以下是功能测试的 SQL 语句:

-- 查询客户信息
SELECT * FROM customer_view;
-- 查询产品信息
SELECT * FROM product_view;
-- 查询订单信息
SELECT * FROM order_view;
-- 查询员工信息
SELECT * FROM employee_view;
-- 插入客户信息
EXEC sp_insert_customer '王五', '上海市浦东新区', '13912345678', 'wangwu@163.com';
-- 插入产品信息
EXEC sp_insert_product '平板电脑', 3999.00, 200, '高性能平板电脑';
-- 插入订单信息
EXEC sp_insert_order 2, 2, 2, 7998.00, '2023-01-02';
-- 插入员工信息
EXEC sp_insert_employee '赵六', '女', 28, '主管', 8000.00;

(二)性能测试

在数据库管理系统中,我们可以使用性能测试工具对数据库进行性能测试,以下是性能测试的步骤:

1、打开性能测试工具。

2、连接到数据库。

3、选择测试场景。

4、运行测试。

5、分析测试结果。

八、数据库维护

(一)备份数据库

在数据库管理系统中,我们可以使用备份工具对数据库进行备份,以下是备份数据库的步骤:

1、打开备份工具。

2、选择备份类型。

3、选择备份设备。

4、选择备份选项。

5、运行备份。

(二)恢复数据库

在数据库管理系统中,我们可以使用恢复工具对数据库进行恢复,以下是恢复数据库的步骤:

1、打开恢复工具。

2、选择恢复类型。

3、选择恢复设备。

4、选择恢复选项。

5、运行恢复。

九、结论

通过本次上机实践,我们深入了解了数据库设计的基本原则和方法,提高了自己的数据库设计能力和实践操作能力,我们也认识到数据库设计是一个复杂的过程,需要综合考虑各种因素,如数据需求、业务流程、性能要求等,在今后的学习和工作中,我们将继续努力,不断提高自己的数据库设计能力和水平。

标签: #设计 #上机 #报告

黑狐家游戏
  • 评论列表

留言评论