精华内容
下载资源
问答
  • 图书管理系统数据库设计

    万次阅读 多人点赞 2019-12-22 20:30:13
    (3)通过完成从用户需求分析、概念结构设计,逻辑结构设计等一系列的数据库设计到上机编程、调试和应用等全过程,掌握数据库设计的基本步骤。 (4)进一步理解和掌握数据库原理的相关内容。 三、实验内容 设计一个...

    实验八 图书管理系统数据库设计

    一、实验学时

    2学时

    二、实验目的

    (1)熟悉SQL Sever基本操作。
    (2)利用T-SQL语句实现相关操作。
    (3)通过完成从用户需求分析、概念结构设计,逻辑结构设计等一系列的数据库设计到上机编程、调试和应用等全过程,掌握数据库设计的基本步骤。
    (4)进一步理解和掌握数据库原理的相关内容。

    三、实验内容

    设计一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员两部分,其中面向学生部分可以进行预定、续借和查询书籍等操作,面向管理员部分可以完成书籍和学生的增加、删除和修改以及对学生借阅、归还的确认。

    1.需求分析
    (1)学生
    学生的操作流程如图8-1所示。

    图8-1 学生的操作流程
    (2)管理员
    管理员可完成书籍和学生的增加、删除和修改以及对学生借阅、续借、归还的确认,其操作流程如图8-2 所示。

    图8-2 管理员操作流程

    2.概念模型设计
    数据库需要表述的信息有以下几种:
    (1)图书信息
    (2)学生信息
    (3)管理员信息
    (4)学生预定图书信息
    (5)学生借阅还图书信息
    说明:
    1)书号是图书的键码,每本书有唯一的书号。一个学生可同时借阅多本书。一个管理员可处理多个同学的借阅等事宜。
    2)一般情况下,学生、管理员和图书之间的联系为1:1:n,借书关系Lend作为连接关系,其键码为n端实体集的键码,即书号为借书关系的键码。这反映了如果还书时也把当初的借书记录删除,则书号就能唯一识别一个元组。
    如果还书时不同时删除借书记录,则意味着同一本书前后可借给不同的学生,于是学生、管理员和图书之间的联系变为m:1:n,这时借书关系的键码为书号和学号的组合。
    如果在不删除借书记录的情况下,同一学生再次借同一本书,这时,学生、管理员和图书之间的联系变为m:p:n,于是,借书关系的键码为书号、学号和管理员号的组合。但这里有一个隐含的信息,即同一学生前后两次借同一本书所遇到的管理员不同,而这种不同可能仅仅是“日期”不同。因此,借书日期成了必不可少的成分,也就是说,在这种情况下,属性全集才是借书关系的键码。
    总之,借书关系的键码与图书管理模式有关,读者可按照自己的理解确定键码,并编写相应的事务处理流程。其他关系也有类似之处。
    3)要知道图书当前的状态,是在图书馆存放,还是被借阅等,需要在Book的模式中增加对应项用以表示图书当前的状态。比如我们增加State,并且约定取值和状态的对应关系如下:
    0:在图书馆中并且没有被预定
    1:在图书馆中并且已被预定
    2:被借出并且没有被预定
    3:被借出并且已被预定
    用E-R模型表达该模型的设计,画出E-R模型如下:

    图8-3 模型的E-R图

    3.逻辑设计
    通过E-R模型到关系模型的设计,请写出关系模式:(实体或属性的英文可以自取)
    1、Book(BookID,Title,Author,Publisher,Pyear,Language,State)
    2、Student(ID,Name,Dept)
    3、Assist(ID,Name)
    4、BBook(BookID,StuID,BDate)
    5、RBook(BookID,StuID,RDate)
    6、Lend(StuID,AstID,BookID,LDate)
    7、BookRtn(StuID,AstID,BookID,RDate)

    4.物理设计
    为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引。下面是各表中建立索引的表项:
    (1)在书表中按书号建立索引
    T-SQL语句:
    CREATE INDEX Book_Idx ON Book(BookID);
    (2)在学生表中按学号建立索引
    T-SQL语句:
    CREATE INDEX Student_Idx ON Student(ID);

    5.用T-SQL实现设计
    (1)建立数据库表(注意自定义约束)
    1)建Book(图书信息)表
    T-SQL:
    CREATE TABLE Book(
    BookID varchar(20) PRIMARY KEY,
    Title varchar(50) NOT NULL,
    Author varchar(50),
    Publisher varchar(50),
    Pyear char(8),
    Language char(2),
    State char(1) DEFAULT ‘0’);

    2)建Student(学生信息)表
    T-SQL:
    CREATE TABLE Student(
    ID varchar(10) PRIMARY KEY,
    Name varchar(18) NOT NULL,
    Dept varchar(18) NOT NULL);

    3)建Assist(管理员信息)表
    T-SQL:
    CREATE TABLE Assist(
    ID varchar(8) PRIMARY KEY,
    Name varchar(18) NOT NULL);

    4)建BBook(学生预定图书信息)表
    T-SQL:
    CREATE TABLE BBook(
    BookID varchar(20) NOT NULL,
    StuID varchar(10) NOT NULL,
    BDate datetime NOT NULL,
    CONSTRAINT PK_BBOOK
    PRIMARY KEY(BookID,StuID),
    CONSTRAINT FK_BBOOK_BID
    FOREIGN KEY(BookID) REFERENCES Book(BookID),
    CONSTRAINT FK_BBOOK_StdID
    FOREIGN KEY(StuID) REFERENCES Student(ID));

    5)建RBook(学生续借图书信息)表
    T-SQL:
    CREATE TABLE RBook(
    BookID varchar(20) NOT NULL,
    StuID varchar(10) NOT NULL,
    RDate datetime NOT NULL,
    CONSTRAINT PK_RBOOK
    PRIMARY KEY(BookID,StuID),
    CONSTRAINT FK_RBOOK_BookID
    FOREIGN KEY(BookID) REFERENCES Book(BookID),
    CONSTRAINT FK_RBOOK_StdID
    FOREIGN KEY(StuID) REFERENCES Student(ID));

    6)建Lend(学生借阅信息)表
    T-SQL:
    CREATE TABLE Lend(
    StuID varchar(10) NOT NULL,
    AstID varchar(8) NOT NULL,
    BookID varchar(20) NOT NULL,
    LDate datetime NOT NULL,
    CONSTRAINT PK_LEND
    PRIMARY KEY(StuID,AstID,BookID),
    CONSTRAINT FK_LEND_StuID
    FOREIGN KEY(StuID) REFERENCES Student(ID),
    CONSTRAINT FK_LEND_AstID
    FOREIGN KEY(AstID) REFERENCES Assist(ID),
    CONSTRAINT FK_LEND_BookID
    FOREIGN KEY(BookID) REFERENCES Book(BookID));

    7)建BookRtn(学生还书信息)表
    T-SQL:
    CREATE TABLE BookRtn(
    StuID varchar(10) NOT NULL,
    AstID varchar(8) NOT NULL,
    BookID varchar(20) NOT NULL,
    RDate datetime NOT NULL,
    CONSTRAINT PK_BookRtn
    PRIMARY KEY(StuID,AstID,BookID),
    CONSTRAINT FK_BookRtn_StdID
    FOREIGN KEY(StuID) REFERENCES Student(ID),
    CONSTRAINT FK_BookRtn_AstID
    FOREIGN KEY(AstID) REFERENCES Assist(ID),
    CONSTRAINT FK_BookRtn_BookID
    FOREIGN KEY(BookID) REFERENCES Book(BookID));

    (2)管理员操作
    1)在学生表中增加一位学生的基本信息:
    T-SQL:
    INSERT INTO Student(ID,Name,Dept) VALUES(#StuNo,#Name,#Dept);
    2)在学生信息表中删除一学生的信息。
    T-SQL:
    DELETE FROM Student WHERE(ID=#ID);
    3)在学生信息表中修改一学生信息。
    T-SQL:
    UPDATE Student SET Name=#Name, Dept=#Dept WHERE ID=#ID;
    4)在图书表中增加一本图书信息。
    T-SQL:
    INSERT INTO Book(BookID,Title,Author,Publisher,Pyear,Language)
    VALUES(#BookID,#Title,#Author,#Publisher,#Pyear,#Language);

    5)在图书表中删除一本图书信息。
    T-SQL:
    DELETE FROM Book WHERE BookID=#BookID;
    6)在图书信息表中修改一本图书信息。
    T-SQL:
    UPDATE Book SET Title=#Title, Author=#Author, Publisher=#Publisher,
    Pyear=#Pyear, Language=#Language WHERE BookID=#BookID;

    事务定义:
    1)定义学生借阅图书这一事务(即向学生借阅信息表中插入一条记录,同时修改图书信息表中相关书籍的状态信息)。
    T-SQL:
    BEGIN TRANSACTION
    INSERT INTO Lend(StuID,AstID,BookID,LDate)
    VALUES(#StuID,#AstID,#BookID,#LDate);
    UPDATE Book SET State=‘2’ WHERE BookID=#BookID
    COMMIT;

    2)定义学生归还图书这一事务(即向学生还书信息表中插入一条记录,同时修改图书信息表中相关书籍的状态信息)。
    T-SQL:
    BEGIN TRANSACTION
    INSERT INTO BookRtn(StuID,AstID,BookID,RDate)
    VALUES(#StuID, #AstID, #BookID, #RDate);
    UPDATE Book SET State=‘0’ WHERE BookID=#BookID;
    COMMIT;

    (3)学生操作
    存储过程定义:
    1)定义学生预定图书的存储过程
    提示:学生预定图书,假设图书已经被预定了,则不允许继续预定。否则的话应该根据图书是在馆内还是被借出去两种情况,修改图书当前的状态。最后在预定表中插入一条记录。修改记录和插入新记录都发生或都不发生,所以将这个动作封装成一个事务,保证这个操作的原子性。
    自定义如下:
    CREATE PROC Book_Book
    @BookID varchar(20),@StdID char(6), @BDate datetime
    AS
    DECLARE @TransName VARCHAR(20)
    SELECT @TransName=’Book_Book’
    BEGIN TRANSACTION @TransName
    DECLARE @booked int, @book_state_before char(1), @book_state_after char(1)
    SELECT @booked=count(*) FROM BBook WHERE BID=@BookID
    IF @booked>0
    ROLLBACK TRANSACTION @TransName
    ELSE BEGIN
    SELECT @book_state_before=state FROM Book WHERE BookID=@BookID
    IF @book_state_before=’0’
    SELECT @book_state_after=’1’
    ELSE IF @book_state_before=’2’
    SELECT @book_state_after=’3’
    UPDATE Book SET state=@book_state_after WHERE BookID=@BookID
    INSERT INTO BBook(BID,StdID,BDate) VALUES(@BookID,@StdID,@BDate)
    COMMIT TRANSACTION @TransName
    END
    GO

    2)定义学生续借图书的存储过程
    提示:学生续借图书,假定图书已经被预定了,则不允许续借。否则,在续借记录中插入一条记录就可以了。把这个动作封装成一个存储过程是为了使用方便明了。
    自定义如下:
    CREATE PROC Renew_Book
    @BookID varchar(20),@StdID char(6), @RDate datetime
    AS
    DECLARE @TransName VARCHAR(20)
    SELECT @TransName=’Renew_Book’
    BEGIN TRANSACTION @TransName
    DECLARE @booked int
    SELECT @booked=count(*) FROM BBook WHERE BID=@BookID
    IF @booked=0
    INSERT INTO RBook(BID,StdID,BDate) VALUES(@BookID,@StdID,@RDate)
    COMMIT TRANSACTION @TransName
    END
    GO

    展开全文
  • 功能需求分析和数据库设计 不论是Web开发还是Android开发,在设计后台的时候我们都要做的重要的事情不外乎两点:1. 需求分析;2.数据库表格的设计。在进行这两项工作的过程中,第一项工作对第二项起着非常重要的...

    功能需求分析和数据库设计

    不论是Web开发还是Android开发,在设计后台的时候我们都要做的重要的事情不外乎两点:1. 需求分析;2.数据库表格的设计。在进行这两项工作的过程中,第一项工作对第二项起着非常重要的作用,我们只有真正的搞清楚了业务需求以及业务逻辑,找到了功能模块之间在后台数据库关联的抽象模型,这样才能确定数据库应该有几张表,每张表有哪些字段,表与表之间该如何联系。

    需求分析与功能模块设计

    一、 接到一个项目之后,一般情况下都会有相应的需求说明,首先我们得到的信息是要做一个什么性质的网站或者是App,在听完客户的相关需求之后,我们要做的就是将具体的业务如何体现在模块开发中,在整个模块的设计过程中大体是这样的几个步骤:1. 熟悉客户需求,并向客户咨询了解相关的模块信息要求;2. 根据用户提出的需求进行模块设计,并且确定各个模块的数据来源以及二级页面跳转需要传递的参数。3.明确前台控件对应的响应时间,针对不同的操作和不同的数据库表格进行联系。
    二、 根据需求分析进行数据库表格的设计,在设计数据库表格的过程中有这样两种不同类型的表格:1.权限管理的表格,这种表格的字段在设计的时候重点突出的是权限,不同的权限对应的字段设置不同的状态,也就是数据库字段对应的值。2.长文本类型的数据库,这类数据库一般指的是用户详情,或者是具体的详细的文本类型的数据。
    三、权衡表格数量,根据最优化原则,综合考虑,在设计数据库表格的过程中一定要想到的是后台编程对应的代码设计,好的数据库表格设计会给后台编写代码提供极大的便利,所以在设计数据库表格的过程中,我们必须将后台高效编码作为数据库设计的考虑因素之一。
    四、 明确数据库在整个项目中扮演的角色,在项目的整个开发过程中我们首先要明确的就是数据库是一个什么样的角色,在这里我想借助具有视频播放功能的网站来阐述,我们设计的数据库主要完成的是包含业务逻辑的数据展示和操作(关系型数据),表与表之间通过主外键是有关联的。而在视频播放网站的所谓的视频资源这样的数据则完全可以是另外的一个服务器数据存储系统。虽然都可称之为持久层但是却又各自不同的特点。

    数据库表格的划分和设计原则

    一、不要想着将所有的字段放在一张表中,在整个后台数据库表格的设计过程中,我们要明确的一点就是表格要有分工明确,逻辑清晰高效这样的特点。同时也不是表格越多越好,我们要做的是在到达分工明确简化明了这一要求的基础之上使我们的表格数量最小化。
    二、字段的设计,在确定数据库表格字段的时候我们一样要本着一个原则那就是归类原则,如果是富文本数据我们可以将之放在一个表中专门存储富文本数据,如果是权限管理或者是父子类标签数据我们可以单独成表,后续通过关联拿到相关的数据,总之要让自己的字段分门别类,前期设计划分的越明确后续项目维护就会越高效。
    三、在理解这一块内容的时候要时刻体现一个原则那就是“关系型”我们设计的数据库不是一个网盘文件,用于简单的存储数据,而是有逻辑有关系在里边的,对于用户型的应用,每个用户都拥有属于他自己特有的数据,为何数据是独有的就是因为相关表的数据和当前用户的ID是关联的是存在一一对应关系的,这里的用户ID就是一个关键,因为他是数据特有性实现的根本原因。

    总结:

    在项目的整个开发过程中,我们最好是通过实战去检验自己的每一个想法,面对任何的问题尤其是在编程中遇到的问题,实际操作才是根本。数据库设计也好,模块划分也好,只要你真正的去想去琢磨去设计,就一定能够分析出结果,设计出雏形,透过现象看本质,通过前台操作数据展示的流程我们就可以找到表格设计和管理的信息。

    展开全文
  • 数据库设计的一般步骤

    万次阅读 多人点赞 2019-06-13 20:03:58
    经过几天给韶关某个高校进行数据库设计的实训,对数据库设计过程有了更加深刻的理解。 数据库的设计按照以下步骤: (1)了解功能需求 在设计数据库之前,设计人员必须要先了解系统的功能需求。这里可以通过...

    经过几天给韶关某个高校进行数据库设计的实训,对数据库设计的过程有了更加深刻的理解。

    一、数据库设计的步骤

    (1)了解功能需求
    在设计数据库之前,设计人员必须要先了解系统的功能需求。这里可以通过阅读产品需求规格说明书,与项目相关人员(比如项目经理、客户等)进行充分沟通。

    (2)定义实体
    了解系统功能需求之后,设计人员通过分析系统功能定义出系统有哪些实体。比如:到酒店开房。这里应该至少包含两个实体:客人和房间。
    在定义出实体以后,我们还要定义实体的属性。例如:
    客人:姓名、性别、手机号码、证件号码、证件类型(身份证、驾驶证、通行证等等)…
    房间:房号、房间类型(单人房、双人房、豪华房等等)、入住时间、离开时间、房间状态(已入住、未入住)…

    (3)绘制E-R图
    定义好实体之后,接下来我们应该根据实体以及实体之间的关系绘制出E-R图。比如:
    在这里插入图片描述
    长方形代表实体,椭圆形代表实体的属性,菱形代表实体之间的关系。

    (4)把E-R图转换成模型
    绘制出E-R图之后,我们需要根据它来构建物理模型。构建物理模型可以使用一些工具,比如目前比较流行的PowerDesigner。
    在这里插入图片描述
    (5)检查模型
    完成模型设计后,我们还要检查模型是否满足第三范式的要求。如果不满足就需要重新对模型进行修正,直到满足第三范式的要求为止。

    比如说,上面的模型并没有满足第三范式的要求。因为customer和room这两个表都存在一些与该表没有直接关系的字段。如果要满足第三范式要求,就需要把模型修改为:
    在这里插入图片描述
    上面模型增加了三个表,分别是identity_type(证件类型表)、register(入住登记表)、room_type(房间类型表),经过对模型的修正后,已经满足第三范式的要求。

    (5)根据模型定义数据库
    不同数据库的SQL命令可能会有小小差别。比如我们这里使用了MySQL数据库。

    定义数据库的命令:DDL

    #创建数据库
    create database 数据库名;
    
    #删除数据库
    drop database 数据库名;
    
    #查询数据库
    show databases;
    
    #选定数据库
    use 数据库名;
    
    #创建表
    create table 表名 (
    	列名 数据类型 [primary key] [auto_increment],
    	列名 数据类型 [not null] [unique] [default '默认值'] [comment '字段说明'],
    	列名 数据类型 [not null] [unique] [default '默认值'] [comment '字段说明'],
    	...
    	[constraint 外键名 foreign key(外键列) references 表名(主键列) [on update|delete cascade]]
    );
    
    #删除表
    drop table 表名;
    

    下面根据模型定义数据库:

    #创建数据库
    create database hotel;
    
    #查询数据库
    show databases;
    
    #选定数据库
    use hotel;
    
    #证件类型表
    create table identity_type (
    	identity_type_id int primary key auto_increment, 
    	identity_type_name varchar(50) not null comment '证件类型名称'
    );
    
    #客人表
    create table customer (
    	cust_id int primary key auto_increment,
    	cust_name varchar(255) not null unique default '' comment '客人名称',
    	mobile varchar(11) default '' comment '手机号码',
    	identity_num varchar(50) not null unique default '' comment '证件号码',
    	identity_type_id int not null comment '外键列,引用证件类型表',
    	constraint fk_cust_identity_type foreign key(identity_type_id) references identity_type(identity_type_id)
    );
    
    #房间类型
    create table room_type (
    	room_type_id int primary key auto_increment, 
    	room_type_name varchar(50) not null comment '房间类型名称'
    );
    
    #房间
    create table room (
    	room_id int primary key auto_increment, 
    	room_num varchar(10) not null comment '房号',
    	room_type_id int not null comment '外键列,引用房间类型表',
    	status int not null comment '房间状态,1代表未入住,2代表已入住',
    	constraint fk_room_type foreign key(room_type_id) references room_type(room_type_id)
    );
    
    #入住登记表
    create table register (
    	cust_id int not null comment '外键,引用客人表',
    	room_id int not null comment '外键,引用房间表',
    	in_time datetime not null comment '入住时间',
    	out_time datetime comment '离开时间',
    	constraint fk_register_cust foreign key(cust_id) references customer(cust_id),
    	constraint fk_register_room foreign key(room_id) references room(room_id)
    )
    

    至此,数据库设计阶段的任务已经完成。

    二、总结

    数据库设计其实并不难,本人觉得比较难的地方在于开始的分析阶段。就是如何根据客户需求把数据库里面的实体,以及实体之间的关系分析出来。所以,在数据库设计阶段,我们应该把重点放在业务需求的分析上,准确把握客户的需求,这样才能够设计出一套比较好的数据库。

    展开全文
  • 6.1 数据库设计的六阶段  数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使...

     6.1 数据库设计的六阶段

      数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。这个问题是数据库在应用领域的主要研究课题。数据库设计既是一项涉及多学科的综合性技术,又是一项庞大的工程项目。有人讲"三分技术,七分管理,十二分基础数据"是数据库建设的基本规律,这是有一定道理的。技术与管理的界面(称之为"干件")十分重要。数据库建设是硬件、软件和干件的结合。这是数据库设计的特点之一。数据库的设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计紧密结合起来。这是数据库设计的特点之二。

      6.1.1 数据库的设计过程

      按照规范的设计方法,一个完整的数据库设计一般分为以下六个阶段:

      ⑴ 需求分析:分析用户的需求,包括数据、功能和性能需求;

      ⑵ 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;

      ⑶ 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;

      ⑷ 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;

      ⑸ 数据库的实施:包括编程、测试和试运行;

      ⑹ 数据库运行与维护:系统的运行与数据库的日常维护。

      数据库设计的这六个阶段,用图6-1-1表示如下:

      图6-1-1:数据库的设计过程

      对于图6-1-1,需要说明的是:

      ⑴ 概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。从理论上讲,设计逻辑结构应该选择最适宜于相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,从中选出最合适的DBMS。但实际情况往往是已经给定了某种DBMS,设计人员没有其他的选择余地。目前DBMS产品一般支持关系、网状、层次三种模型中的一种,对某一种数据模型,各个机器系统又有许多不同的限制,提供不同的环境与工具。所以设计逻辑结构时一般要分三步进行:

      ① 将概念结构转换为一般的关系、网状、层次模型;

      ② 将转换的关系、网状、层次模型向特定的DBMS支持下的数据模型转换;

      ③ 对数据模型进行优化;

      ⑵ 在数据库的逻辑结构设计完成之后,要对数据模型进行优化。因为数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导,优化时可采用在第五章"完整性约束与模式分解"的5.8.3小节中介绍的模式分解方法对关系模式进行规范化。如果在优化过程中发现数据库的逻辑结构有诸多问题,则需要返回到上一层修改或重新进行数据库的逻辑结构设计;

      ⑶ 其实将概念模型转换为全局逻辑模型之后,还应该根据局部应用的需求,结合具体DBMS的特点,设计用户的外模式,这一点在图6-1-1中没有体现。目前关系数据库管理系统一般都提供了视图的概念,可以利用视图来设计更符合局部用户需要的用户外模式。定义数据库全局模式主要是从系统的时间效率、空间效率、易维护等角度出发。由于用户外模式与模式是相对独立的,因此在定义用户外模式时可以注重考虑用户的习惯与方便,包括:

      ① 使用更符合用户习惯的别名;

      ② 可以对不同级别的用户定义不同的VIEW,以保证系统的安全性;

      ③ 简化用户对系统的使用;

      ⑷ 在数据库的物理结构设计完成之后,就可以针对系统常用的操作进行性能预测,评价所做的设计。如果发现目前的设计不能保证系统常用操作的性能要求的话,就需要返回到上两层重新调整数据库的逻辑结构设计;

      当评价一个DBMS产品时,性能指标是一个主要的因素。一个DBMS是一个复杂的软件,而且不同的厂商可能将它们的系统定位于不同的市场。为此,他们对系统的某些特定部分进行更多的优化,或者选择不同的设计。例如,一些系统要求有效地运行复杂查询,而另一些系统用来在一秒中内运行很多简单事务。在每一类系统中,都有很多竞争产品。为了帮助用户在选择DBMS的过程中找到适合自身的系统,人们提出了几个性能基准测试。它们之中包括度量特定一类应用性能的基准测试和度量一个DBMS完成各种操作的好坏的基准测试(如,Wisconsin Benchmark)。

      基准测试应该是可移植的、易于理解的,并且可以很自然地就扩展到大的问题实例上。它们应该能够度量峰值性能(如,每秒中处理事务的个数,即tps),同时也能度量在给定应用域内工作负载的性能价格比(如,$/tps)。现在已经建立了事务处理委员会(简称TPC)来定义事务处理和数据库系统的基准测试。其他著名的基准测试已经被学术研究者和工业组织提了出来。属于特定厂商的基准测试对于比较不同的系统没有多大的用处(尽管它们可能在特定工作负载下判断一个给定系统的好坏是有用的)。

      在万维网上,通过URL可以获得联机版本的所有TPC基准程序描述以及基准程序结果。

      ⑸ 完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库的逻辑设计和物理设计的结果严格地描述出来,成为DBMS可以接受的源代码。再经过调试产生目标模式,然后就可以组织数据入库了,这就是数据库实施阶段,即数据库的物理实现。数据库的物理实现包括两项重要的工作:一是数据载入;二是应用程序的编码和调试。

      ⑹ 在完成数据库的物理实现之后,进行系统的试验性运行。这一阶段实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求。如果不满足,对应用程序部分则要修改、调整,直到达到设计要求为止。如果在运行过程中发现系统的性能不满足要求,就需要返回到上一层,重新调整数据库的物理设计。

      ⑺ 数据库试运行合格后,数据库开发工作就基本完成,即可投入正式运行了。但是,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,因此对数据库设计进行评价、调整、修改等维护工作是一个长期的任务。也是设计工作的继续和提高。在数据库运行阶段,对数据库的经常性的维护工作主要是由DBA完成的,它包括:

      ① 数据库的转储和恢复;

      ② 数据库的安全性和完整性控制;

      ③ 数据库性能的监督、分析和改造;

      ④ 数据库的重组织与重构造;

      正像我们所强调的那样,这个设计步骤既是数据库的设计过程,也包括了数据库应用系统的设计过程。在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。事实上,如果不了解应用环境对数据的处理要求,或没有考虑如何去实现这些处理要求,是不可能设计一个良好的数据库结构的!

    展开全文
  • 任务六 数据库存储过程设计 文章目录任务六 数据库存储过程设计【实训目的与要求】【实训原理】【实训步骤】一、定义、调用存储过程1.创建不带参数的存储过程2.创建带输入参数的存储过程3.创建带输入、输出参数...
  • 数据库应用系统功能设计与实施

    千次阅读 2019-08-15 15:58:46
    第4章软件体系结构与设计过程 4.1 软件体系结构与设计过程 4.1.1 软件体系结构 软件体系结构:又称软件架构,软件体系结构={构件,连接件,约束}) 1)构件是组成系统的具有一定独立功能的不同粒度的程序模块、独立...
  • 数据库课程设计《SQL Server图书馆管理系统》(全) 免费下载地址:http://xiaolan.400gb.com/file/128965837 序言 1 一、图书馆管理系统 E-R 图 2 二、图书馆管理系统功能实现示意图 3 三、图书馆管理系统功能图例...
  • 数据库题目之数据库设计

    千次阅读 多人点赞 2019-01-10 15:21:25
    1、在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的 阶段。 A.需求分析 B.概念设计 C.逻辑设计 D.物理设计 【答案:】B 2、在关系数据库设计中,设计关系模式是 的...
  • 图书销售管理系统数据库课程设计

    热门讨论 2014-08-25 18:42:39
    图书销售管理系统,是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理,通过本系统可以达到以下目标: a、用户管理:对系统所有用户的相关信息进行管理。 b、图书管理:对图书信息进行添加...
  • 其中大致设计功能如下分为以下几点。 系统管理的对象如下: 1.客户:每个客户分配唯一客户号,要登记客户姓名、地址、电话、信用状况(优/良/一般/差)、预付款等信息。 2.产品:产品编码、产品名称、规格、单价、...
  • 数据库设计的基本步骤

    万次阅读 多人点赞 2017-08-13 20:52:16
    数据库设计的基本步骤 按照规范设计的方法,考虑数据库...在数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑设计和物理设计与选用的DAMS密切相关。   1.需求分析阶段(常用自顶向下)
  • 网站评论功能数据库设计和开发

    万次阅读 多人点赞 2016-05-18 20:40:12
    本文主要分享了我在设计评论模块中的一些心得,希望对读者有些许帮助。 需求分析 现阶段评论做的最好的我想应该是网易新闻(app)里面的评论模块了,其...在设计评论模块前可以和pd或者boss沟通,我们的评论功能
  • 数据库设计(一)——数据库设计

    万次阅读 多人点赞 2018-08-30 17:30:34
    一、数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段:  A、系统需求分析阶段 B、概念结构设计阶段 C、逻辑结构设计阶段 D、物理结构设计阶段 E、数据库实施阶段 F、数据库运行与维护阶段 需求分析...
  • Web网站评论功能数据库设计和开发

    万次阅读 2017-05-29 09:49:44
    本文主要分享了我在设计...现阶段评论做的最好的我想应该是网易新闻(app)里面的评论模块了,其“盖楼”的方式让人印象深刻,评论已经成为该app的核心功能之一了。市面上大部分app的评论模块设计的还是相对简单
  • 数据库学习】数据库总结

    万次阅读 多人点赞 2018-07-26 13:26:41
    1,数据库 1)概念 数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。 常见数据库管理系统有:Access、mysql、sql server 2)特点 ①数据库数据特点 永久存储、有组织...
  • 数据库:数据库设计

    千次阅读 2020-11-16 16:47:49
    1,数据库设计概述 1.1,数据库设计的基本概念 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种...
  • 实际项目的数据库设计基本方法

    千次阅读 2019-08-05 22:59:05
    实际项目的数据库设计基本方法 一、 数据库设计规范化方法 需求分析阶段(常用自顶向下) 概念结构设计阶段(常用自底向上) 逻辑结构设计阶段 物理设计阶段 数据库实施阶段 6.数据库运行和维护阶段 二、 数据库...
  • SQL Server数据库基础知识——数据库存储过程怎么写

    千次阅读 多人点赞 2020-05-22 04:45:56
    存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个“execute 存储过程名 ...
  • 数据库设计原则

    千次阅读 2019-06-09 09:52:33
    一,数据库设计原则 1. 原始单据与实体之间的关系  可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。 在特殊情况下,它们可能是一对多或多对一的...
  • 数据库设计过程是将数据库系统与现实世界密切地、有机地、协调一致地结合起来的过程。 数据库的设计质量与设计者的知识、经验和水平密切相关。作为数据库应用系统的重要组成部分,数据库设计的成败往往直接关系到...
  • 网上订餐系统(数据库设计方案)

    热门讨论 2011-11-14 09:33:42
    本文件提供了网上订餐系统数据库设计部分的详尽方案,比较设用于初学者尝试设计的参考。
  • 数据库存储过程

    万次阅读 2017-01-04 09:24:51
    存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库中。 存储过程数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 ...
  • 数据库设计概述及六步骤简介2.需求分析---步骤一2.1 收集资料2.2 分析整理2.3 数据流图2.4 数据字典2.5 用户确认3.概念结构设计---步骤二3.1 E-R 模型3.2 建立 E-R 模型4.逻辑结构设计---步骤三4.1 E-R 模型向关系...
  • 实时数据库,内存数据库,关系型数据库比较

    万次阅读 多人点赞 2018-09-26 18:55:10
    内存数据库 内存数据库就是将数据放在内存中直接操作的数据库,它利用内存的读写速度比磁盘快、内存是随机访问而磁盘是顺序访问这两个特点,将数据保存在内存中,在内存中模仿建立表结构和索引结构并针对内存特性...
  • 数据库面试题

    千次阅读 多人点赞 2018-05-24 10:46:20
    存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。 调用: 1)可以用一个命令对象...
  • 在平时开发的过程中,特别是在遇到表单时候,我们经常需要为前端提供一些下拉选项的信息,这时候我们需要为前端提供下拉菜单的信息,让前端进行渲染。同时我们在数据库中存储的只可能是对应的编码,例子如下: 这里...
  • 数据库——数据库结构设计

    千次阅读 2020-03-08 22:21:25
    概念设计 是数据库设计的 核心环节,通过对用户需求进行综合;归纳;与抽象,形成一个独立于DBMS 的概念模型 数据库概念设计的目标 1 定义与描述应用领域设计的数据范围 2 获取信息模型 3 描述数据的属性特征 4 描述...
  • 数据库系统设计数据库安全性

    千次阅读 2020-04-04 22:46:24
    数据库安全性4.1 数据库安全性概述4.1.1 数据库的不安全因素4.2 数据库安全性控制4.2.1 用户身份鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权:授予与回收4.2.5 数据库角色4.2.6 强制存取控制方法4.3 视图...
  • 用户登录系统数据库设计 最近看了看公司后台用户登录系统的设计, 比较混乱, 主要还是因为URS和Oauth以及URS第三方这三个登录形式各不相同导致的。 下面着重介绍一下涉及到第三方登录中需要注意的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 542,654
精华内容 217,061
关键字:

数据库设计过程功能