游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

技术解惑数据库设计的那些事

  良好的数据库设计能够为用户和各种应用系统提供一个信息基础设施和高效率的运行环境,满足各种用户的需求,并对应用程序的信息管理和数据操作产生重要的影响。作为整个项目搭建中最为复杂的过程,设计出一个良好的数据库结构并不是一件简单的事:对于小型项目而言,业务需求更易理解。因此,数据库设计者直接就能给出要构建的关系、关系的属性以及其上的约束。对于复杂的、大型应用而言,业务逻辑往往层层嵌套,通常没有一个人能够理解应用所有的数据需求并直接给出最终的数据库设计。
  可见,掌握一门数据库设计的方法对于项目搭建而言还是非常必要的。本期葡萄城公开课,我们特别邀请到了《精通SQLServer》的作者罗会涛先生,就数据库设计的入门概念、实体关系设计、SQL语句等基础知识进行讲解,结合实际案例,让你秒变数据库设计大神。一、数据库设计的特点基本概念
  数据库是指按照数据结构来组织、存储和管理数据的仓库。
  数据库基本结构
  数据库一般按照数据模型、存储和访问方式,以及用途进行分类。
  按数据模型划分:层次结构模型网状结构模型关系结构模型
  按存储和访问方式划分:关系型桌面型:SQLite,MSAccess网络型:Oracle,MySQL,MSSQLServer非关系型键值数据库:AmazonDynamo列式数据库:Hbase文档数据库:MongoDB图形数据库:Neo4j
  按用途划分:OLTP数据库讲究事务完整性ACIDOLAP数据库数据仓库基本只读
  不管是什么类型的数据库结构,在设计数据库时,都会遵循以下基本规律:三分技术、七分管理和十二分基础数据。其中,管理指的是数据库设计的项目管理和企业(即应用部门)的业务管理;基础数据指的是针对数据收集、入库和更新的动作。
  对于常见数据库而言,设计过程包括以下阶段:完整的刻画未来数据库用户的数据需求选择数据模型,并采用所选数据模型的概念将需求转化为数据库的概念模式将抽象数据模型转化为数据库实现:逻辑设计:将高层概念模式映射到将使用的数据库系统的实现数据库模型物理设计:指明数据库的物理特征,包括文件组织格式和索引结构的选择
  下面,我们将以关系型数据库为例,讲解数据库的实体关系设计以及SQL语句执行。本期课程,对于刻画用户的数据需求和物理设计并不会过多的介绍。因为数据需求来自于需求分析,这在软件工程中是一个很大的过程;而物理设计和所选择的DBMS有着很大的关系。二、关系型数据库中的基本概念
  表(Table):表是数据的有序排列,强调其数据必须按照行和列排成一个矩形。
  行(Row):记录(Record)
  列(Column):字段或属性
  主键(PrimaryKey,简称PK):被挑选出来,作表的行的惟一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。主键存在的目的是为保证实体的完整性。
  外键(ForeignKey,简称FK):外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束。外键用来建立和加强两个表数据之间的连接,用来保证参照完整性引用完整性。
  三、实体关系模型
  实体关系模型(Entityrelationshipmodel,简称ER模型)由美籍华裔计算机科学家陈品山发明,是概念数据模型的高层描述所使用的数据模型或模式图。ER模型常用于信息系统设计中;在概念结构设计阶段用来描述信息需求和或要存储在数据库中的信息的类型。
  在基于数据库的信息系统设计的情况下,在逻辑设计阶段,概念模型要映射到逻辑模型如关系模型上;在物理设计期间映射到物理模型上。
  对于实体关系,有一个非常普遍的错误概念,即认为关系指表之间的关系。实际上,关系与表这个术语几乎是同义词。
  实体关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体,如:
  1、一对一:一个班主任只属于一个班级,一个班级也只能有一个班主任应用场景:适用于属性过多的实体,但不希望单个表有过多字段,如人员基本信息、人员档案信息不够全面,特殊条件如班级中途更换班主任等无法满足
  2、一对多:一个顾客对应多个订单,而一个订单只能对应一个客户
  3、多对多:一个学生有多个课程的成绩,一个课程也有多个学生来上四、业务系统数据库表设计步骤
  实现从编码数据表(MasterTable)到业务数据表(TransactionTable)的转变。
  1、编码数据表(MasterTable)数据库设计之初设计目的是捕捉系统中的实体对象设计Master表就是描述系统中的实体。如:用户、会计科目、客户等
  2、业务数据表(TransactionTable)一笔业务(或称一笔交易)是指Master表中的实体在系统中的一个活动这些活动会被捕捉(记录)到业务数据表中一般地,业务数据表都有指向(引用)Master表的外键五、典型数据库表设计
  了解了数据库的基本概念,我们来看几张典型的数据库表。
  成绩单:
  1、Master表年级:年级编码、名称班级:班级编码、名称、年级编码学生:学号、姓名、性别考试科目:编码、名称达线情况:不需要考试:不易识别的实体编码、考试名、日期
  2、Transaction表:成绩表考试编码、学号、科目编码、分数不要【语文】【数学】字段不要【总分】字段
  销售订单:
  1、Master表客户,用户(制单人),业务员不易识别:部门商品
  2、Transaction表
  订单头表订单编号(主键)、日期客户ID,制单人(用户),业务员ID不易识别:订单状态(订购,发货,完成)不宜判断:合计金额
  订单行表订单编号、行号(多字段组合主键)商品ID,数量,单价金额:不要
  工资表:
  1、Master表员工,部门数据类型,工资项目工资表模板,工资表模板项目
  2、Transaction表
  工资表工资表ID(主键)、年月模板ID状态(已发放不能修改)
  工资表数据记录ID(主键)工资表ID,员工ID,工资项目ID(唯一索引)年月(可选)工资项目数据数值工资项目数据文本工资项目数据日期六、范式标准
  范式(NormalForm,缩写为NF),数据库设计一般分为六种范式类型,越高的范式代表数据库冗余越小,且高级范式包含了低级范式的要求。
  数据库设计之所以要遵循范式,是为了确保数据库简洁、结构明晰,且不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之,不遵循范式要求的数据库设计,不仅会给编程人员制造麻烦,还可能存储大量不需要的冗余信息。
  在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):
  第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
  第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
  第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
  一般来说,数据库只需满足第三范式(3NF)就行了。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。
  举例,对一张存放商品的基本表来说。金额这个字段的存在,表明该表的设计不满足第三范式,因为金额可以由单价乘以数量得到,说明金额是冗余字段。但是,增加金额这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。七、SQL语句相关知识
  结构化查询语言(StructuredQueryLanguage,简称SQL)是一种用于数据库查询和程序设计的编程语言,可以存取数据以及管理关系数据库系统。
  SQL语句分类:
  1、数据定义语言DDL(DataDefinitionLanguage)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,如:表、视图等等DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。
  2、数据操控语言DML(DataManipulationLanguage)用于操作数据库对象中包含的数据,也就是说操作的单位是记录。增删改查CRUD:增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)CInsert,RSelect,UUpdate,DDelete
  3、数据控制语言DCL(DataControlLanguage)用于控制数据库对象的权限,这些操作使数据更加的安全。Grant:给某用户或某组或所有用户授予某些特定的权限。Revoke:废除某用户或某组或所有用户的特定权限
  SQL语句元素(CRUD):
  1、INSERT(添加新记录)添加单条记录:Insertintotablename(column1,column2)Values(1,string’)批量添加记录:Insertintotablename(column1,column2)Select
  2、Select(获取数据行)Topn(指定最多返回多少行记录)WITHTIES(指定是否将末尾并列排序的额外记录也一并返回)INTO(创建一个新表,并把查询结果的记录插入表中)FROM(指定从哪里查询数据)
  3、JOINWHEREBETWEENLIKEIN
  4、聚合函数AVG取平均值MAX取最大值MIN取最小值COUNT取记录条数SUM取合计值
  表之外的数据库对象:视图:保存下来以便反复使用的SELECT查询存储过程:保存下来以便反复使用的CRUD查询触发器:一种特殊的存储过程,对表进行增删改时自动执行自定义函数:函数类似存储过程,但是必须有返回值,且可直接用于FROM子句八、提高数据库运行效率的办法
  在给定的系统硬件和系统软件条件下,提高数据库系统的运行效率的办法是:在数据库物理设计时,降低范式,增加冗余,少用触发器,多用存储过程。当计算非常复杂、而且记录条数非常巨大时(例如一千万条),复杂计算要先在数据库外面,以文件系统方式用C语言计算处理完成之后,最后才入库追加到表中去。这是电信计费系统设计的经验。发现某个表的记录太多,例如超过一千万条,则要对该表进行水平分割。水平分割的做法是,以该表主键PK的某个值为界线,将该表的记录水平分割为两个表。若发现某个表的字段太多,例如超过八十个,则垂直分割该表,将原来的一个表分解为两个表。对数据库管理系统DBMS进行系统优化,即优化各种系统参数,如缓冲区个数。在使用面向数据的SQL语言进行程序设计时,尽量采取优化算法。
  以上就是本期公开课《数据库设计入门》的精选内容,欢迎访问葡萄城官网免费预约在线课程学习,罗老师会亲自为你扫平一切数据库设计过程中的坑。

真的来了!长城路虎即将亮相,路虎换上长城尾标会火吗?中国人的摸访太牛,路虎车有什么好。长城尾标难以让路虎升温长城汽车与路虎合资打造的轻量化底盘产品项目建设方案内容流出,似乎长城没有能收购路虎但还是可以继续合作;那么奇……遍知教育升级D2C平台战略发布爱奇艺遍知APP蓝鲸教育1月11日讯,知遍而升2022遍知教育盛典在京举行。遍知教育CEO周柳青宣布平台将进行产品、服务、生态等三方面升级,未来内容将聚焦职业教育、兴趣学习、家庭教育三大方向,……显卡价格反复横跳再次涨价,8月份又是奸商购物节信不信由你,我是懂点电脑的软柿子。喜得千金停更了一个月,在此回归市场的柿子傻眼了,币价涨了,算力破解了,显卡价格又要回到解放前。8月份的网吧光复计划直接就被玩坏了,导致老黄二话……为什么你关不掉安卓手机的广告?我有一个同事,他因为iphone信号差,前段时间换了一部安卓手机。现在他已经习惯性的在软件app开屏的时候,下意识的点击关闭这个选项,这是他现在对抗安卓手机广告的方式之一……新国标电动车怎么选?三个选车原则一定要牢记,附带车型推荐请您在阅读前,先点击上面的关注。感谢您的支持,我们将为您带来更多有价值的内容。今天来聊一个选车的话题。之前新能源战略家带着大家盘点了一下2021年最能跑的新国标电动……亲身体验之后更加确定了波多星Y1网络电视盒子网络电视盒子还是自己亲身体验过后才能知道它好不好用,所以我今天要来给大家安利一款我用的这款波多星Y1网络电视盒子,我真的是我亲身体验的用起来真的太好用,用起来的时候也是很方便的……攀升电脑主机,电竞设计家用全满足由于全球电脑硬件供应的持续短缺,目前电脑产品的价格高居不下。而品牌主机仍然是相当有性价比的选择,而攀升的主机性价比就非常高。而消费者往往有着不同的需求,有的需要电脑进行电竞娱乐……微评论如何调好数据安全这杯酒近日,苹果公司计划推出的新版照片甄别系统(CSAM)引发了诸多争议。很多人担心,该系统的推出会带来隐私安全、数据泄露等风险。有专家表示,要想同时保障数据开发和数据隐私,可……新能源车准车主的困惑自2021年12月19日起,蔚来et5发布,我第一时间花费2000元订金在APP上订了这款32。5万的车,考虑到到明年9月还不一定有现车,又在懂车帝上反复核实几款新能源车,主要……新年传喜报!泰策科技中标安徽省应急系统建设项目近日,东方通旗下全资子公司泰策科技成功中标安徽省应急管理6N重点领域三大系统项目民爆领域应急系统建设项目,支撑安徽省民爆领域的安全生产监测预警、指挥调度、抢险救援等业务,提供全……新能源车渗透率提升明显,车企成绩单亮眼,未来这类车型有望迎机8月10日,乘联会发布了多项7月新能源车销售的亮眼数据。根据乘联会的报告,7月新能源乘用车零售销量达到22。2万辆,同比增长169。4,环比下降3。2。17月新能源车零售……网约车的运价到底谁说了算?自从有了网约车以后其运价就由平台一手操控,这个很不合理也不合法,在相关的法律法规还没有出台之前属于无序竞争状态,网约车也没有正式纳入相关的管理范围之内,一直游离在法律的边缘,但……
支付宝崩了再次冲上热搜,官方已回复,坏消息越来越多?前言大家都知道,前段时间,支付宝崩了这一词条冲上了热搜,出现这一现象的原因就是网友们七夕抢红包的流量太大了。但是在最近几天,支付宝又再一次冲上了热搜,但是这一次的词条却比……全球首台全自动鼻咽拭子采样机器人亮相服贸会,实现核酸检测无人财经网科技9月5日讯,据IT之家消息,据中国新闻社报道,在9月4日的中国国际服务贸易交易会上,中国服务贸易发展成就展中展出了全球首台全自动鼻咽拭子采样机器人。据报道,该款机器人……连取双季度市场份额第一,vivo领跑地位初步形成在存量竞争的中国安卓手机市场,目前的主要玩家只剩下vivo、OPPO和小米,在过去的一年时间里,由于华为芯片的缺失,让出了一大波市场,三大厂商实现了不同程度的份额增长。其中以v……DDR5内存上市价会比DDR4高30,2024年才有望普及今年内Intel就会推出支持DDR5内存的AlderLake平台,当然首发的只有KKF处理器各三款,非K系列要等到明年第一季度才会出来,而各内存厂商的DDR5内存模组也在准备中……49分钟大卖15亿元!到底是哪个手机品牌这么牛?49分钟大卖15亿元是哪个品牌手机做到的?先公布答案:小米,但不是小米手机的战绩,而是小米全品类产品的战绩。这件事情发生在现在正在进行的618狂欢节,与每年的双11一样,……支付宝集五福又开始了,如何快速集五福呢?虎年到啦,又到了支付宝集五福的时候,今天19号至31号开展为期十二天的集五福活动,刚开始活动,便微博上了热搜。爱国福,和谐福,友善福,富强福,敬业福。其中敬业福比较难获得……公关资源网解读互联网营销方式汇总互联网营销方式有哪些?做品牌推广选哪些推广渠道比较好?公关资源网为您解读:1,竞价排名。主要是百度竞价。2,信息流广告。3,论坛推广。4、百度下拉框联想……鸿蒙OS前三批升级名单曝光,华为荣耀手机可升级,幸福来得太突5月25日,华为正式官宣,将于6月2日召开鸿蒙操作系统(HarmonyOS)发布会,鸿蒙OS正式版将明日正式发布。5月31日,鸿蒙OS已开始归档,6月2日正式同步升级,苦等2年……京东工业品智能零售门店10店同开业覆盖5省共10家9月2日消息,近日,京东工业品智采优选店在江苏省、浙江省、河北省、山东省、安徽省,5省10家门店同步开业,本轮京东工业品智采优选店落地的城市均是国内工业制造业企业的产业带聚集地……Android12首发机型曝光9月正式发布有消息称,首款搭载安卓12系统的新机谷歌Pixel6系列将在9月13日正式发布,这一时间比iPhone13靠前。谷歌Pixel6系列还配备了5000万像素主摄、1200万……科技公司明星化的利与弊近20年,具备科技属性的公司获得了越来越多的关注。某种程度上,这些公司实现了对其业务领域的破圈,成为了家喻户晓的明星。互联网公司是其中的典型代表,苹果、谷歌、亚马逊、脸书……普通人也能通过互联网赚钱的实操项目1。知识付费现在都2021年了,知识付费一直更新迭代,还是有着巨大的潜力,比如喜马拉雅,得到,知乎会员等等,都捉住了知识付费的风口,赚得盆满钵满。你可能会说,这些都是大机……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网