一般开发一个数据库,要进行设计主要步骤有需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行与维护物理结构设计就是其中的一步
数据库的物理结构设计是对已经确定的逻辑数据结构,利用DBMS(数据库管理系统)所提供的方法、技术,以较优的数据存储结构、数据存取路径、合理的数据存放位置以及存储分配,设计出一个高效的、可以实现的物理数据结构通俗一点说,就是对已经设计好了的逻辑结构,设计出相应的且比较优化的物理结构,设计出的物理结构可以数据存储,该结构中要有实现数据存储、数据存取路径、数据存放位置、存储分配等几个模块
数据库的基本结构
数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。
(1)物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令 *** 作处理的位串、字符和字组成。
(2)概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。
(3)逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。
数据库不同层次之间的联系是通过映射进行转换的。数据库具有以下主要特点:
(1)实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
(2)减少数据的冗余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
(3)数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。
(4)数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
(5)数据一致性和可维护性,以确保数据的安全性和可靠性。主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏
逻辑结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如SQL Server或Oracle或MySql)。由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。
动态的结构:
{
user_id:13,
action: 行为,
object_id: 对象ID,
object_type: 对象类型,
object_user_id: 对象用户ID,
parent_object_id: 对象父级ID,
parent_object_type: 对象父级类型,
parent_object_user_id: 对象父级用户ID,
reply_id: 回复ID, // action为回复时有用
parent_reply_id: 回复的父级回复ID, // action为回复时有用,回复了别人对评论的回复
text: '转发或者分享时附加文字',
view_count: 0,
created_at: 创建时间,
deleted_at: 删除时间,
}
说明: 1object_只存储主要模块内容信息,不含评论; 2parent_object_存储有嵌套关系的对象,比如当object_为答案时,parent_object_为问题; 3reply_id用于直接回复评论时用到; 4parent_reply_id父回复ID; 5 两个回复ID,使用情况是:当回复了别人的回复时,根据comment_id拉取评论与全部回复,在模板显示时只显示对话的两个回复。
场景列表:
一级结构:
安正超发布了文章
'action' => NEW,
'user_id' => 安正超ID,
'object_id' => 文章ID,
'object_user_id' => 安正超ID,
'object_type' => ARTICLE,
安正超上传 了 N张
'action' => NEW,
'user_id' => 安正超ID,
'object_id' => ID(数组,以逗号隔开),
'object_user_id' => 安正超ID,
'object_type' => PICTURE,
安正超提了问题xxxx
'action' => NEW,
'user_id' => 安正超ID,
'object_id' => 问题ID,
'object_user_id' => 安正超ID,
'object_type' => QUESTION
二级结构:
安正超评论了文章xxxx(回答了通用)
展示:
文章: xxxxx
评论:xxxxx (李林评论的)
'action' => COMMENT,
'user_id' => 安正超ID,
'object_id' => 评论ID,
'object_type' => COMMENT,
'object_user_id' => 安正超ID
'parent_object_id' => 文章ID,
'parent_object_user_id' => 作者ID
'parent_object_type' => ARTICLE,
三级结构:
安正超在文章中回复了李林的评论
展示:
文章: xxxxx
评论:xxxxx (李林评论的)
回复:xxxx (安正超)
'action' => REPLY,
'user_id' => 安正超ID,
'object_id' => 评论ID,
'object_type' => COMMENT,
'object_user_id' => 李林ID
'parent_object_id' => 文章ID,
'parent_object_user_id' => 作者ID
'parent_object_type' => ARTICLE,
'reply_id' => 安正超的回复ID
四级结构:
安正超回复了李文凯在问题 “xxxx” 中 李林的答案下的评论
说明:问题信息从答案接口取回
展示:
问题: xxxxx
答案1
答案2
答案3(李林回答的)
评论:xxxxx (李文凯评论的)
回复:xxxx (安正超)
'action' => RESPOND,
'user_id' => 安正超ID,
'object_id' => 评论ID,
'object_type' => COMMENT,
'object_user_id' => 李文凯的ID
'parent_object_id' => 答案ID,
'parent_object_type' => ANSWER,
'parent_object_user_id' => 李林ID
'reply_id' => 安正超的回复ID
以上就是关于数据库设计中物理结构设计怎么写全部的内容,包括:数据库设计中物理结构设计怎么写、数据库的基本结构包括哪些、什么是数据库的逻辑结构设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)