`
lovnet
  • 浏览: 6984107 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论
阅读更多

今天由杰龙标软技术总监袁龙友老师讲解数据库设计思想,下面是张挺记录的日记:

105

首先再次复习了悲观锁和乐观锁的概念,个人觉得,对于这样的概念,死记硬背也不容易理解,还是要在实际的使用中慢慢体会。

接着讲解了游标的概念和实际用途,游标的本质就是一种循环访问记录的方式,也就是一段代码。

定义游标的语法是:Declare cursor

对比理解:如SwingAWT中的字体,实际上是系统的一种资源,是一种定义,游标也类似。

定义游标的语句中可以使用for关键字,游标也可以理解为一种悲观锁定。

和游标相关的FETCH@@FETCH_STATUS变量。其中,全局变量@@FETCH_STATUS<>0表示游标列,最后,记录已取完,while条件是这个变量等于0

使用游标的过程:

1. 定义游标

2. 打开游标

3. 循环遍历

4. 关闭游标

5. 释放资源

具体为:

1. declare StudentCur cursor for select * from student

2. open StudentCur

3. while……end

4. close(StudentCur)

5. DEALLOCATE StudentCur

将游标的结果放在resultset中,不是悲观锁,可以使用游标进行分页,其中,在SQL Server中,游标分页的性能不是最好的,比@@RowCount的方式差。而在ORACLE中,这种分页方式的性能是比较好的。所以在实际工作中,应该根据实际的环境来选择不同的方式。

T-SQL中,每个结果集都作为游标返回。显示游标和隐式游标的概念。

对于游标的学习,有个大致的认识就可以,在实际工作中,属于比较生僻的内容。

数据库设计:

通过一个学生成绩表来分析了常见的数据库设计错误:

1. 数据冗余

2. 更新异常

3. 插入异常

4. 删除异常

通过前面的设计错误,引出了数据库设计范式的概念,范式,就是软件工程中的设计模式在数据库设计中的说法。

数据库中的的范式有5种,常用的有以下三种:

第一范式(1NF

数据库表中的字段都是单一属性的,不可再分。(但也不是绝对的,反例如微软的Profile数据表的情况)

第二范式(2NF
数据库表中的一些非主键字段部分依赖于部分主键字段。此种情况只是针对主键是多个字段的情况。

第三范式(3NF

数据库表中的一些非主键字段部分依赖于其它非主键字段。

数据库设计的基本原则

1、正确反映数据与数据(信息与信息)之间的层次逻辑关系。

2、对进入到数据库中的数据有一个有效性检查

3、对数据库中的数据进行非逻辑操作进行相应的错误处理

4、满足系统对性能上的要求

ER建模

首先介绍了关系实体(E-R)的建模。

1. 在逻辑模型中是实体,在物理模型中就是具体的表。
如果两个对象是多对多的关系,在建模中的经验做法是加一个中间表,该表将多对多的两个表的主键作为它的联合主键,这个表叫做关系映射表。

2. 对于两个表的关系,分为确定性,非确定性,和不指定(多对多)

ERStudio工具的安装和使用。

一个实际的项目设计,论坛,需求为:

设计一个论坛,要求实现如下主要功能:

1、 要求实现版块管理,能够显示版块的名称,描述。

2、 要求实现论坛的管理,能够显示该论坛中的文章列表,在列表中的每篇文章要求显示其主题,发帖时间,浏览次数,最后回复时间,最后回复人。该版最后发帖时间与发帖人及发帖主题。一般来说论坛都比较多,用户还需求对这些论坛进行分类(按版块)管理。

3、 要求能够为论坛指定版主。

4、 要求实现只有注册用户才能访问论坛,并且要求限制每个用户只能访问特定的论坛。用户比较多,一般来说要求能够一次性对多个用户进行访问权限管理(类似于Windows中的用户组)。

5、 要求对论坛中的操作(删除,编辑,修改,回复)实现不同的用户不同的权限。

6、 要求对于用户访问论坛进行日志(登录,注销,发帖,删帖,编辑帖等等)记录。

7、 要求实现论坛用户好友管理。

8、 要求实现论坛用户的处罚管理(禁用IP,禁用用户ID,禁止发帖等)

9、 对于用户发帖,回复进行积分管理。

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 279.75pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CIBM_USER%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""></imagedata></shape>

其中,Board是版块表,Forum是论坛表,一个版块包含有多个论坛。每个论坛发的帖子是Article表,Reply是回复的帖子表,并将回复帖子表和Article分开设计,和设计在一起做了对比分析。UserDesc是用户信息表,而User是用户表,包含用户名和密码。版主是用户,也是属于论坛,它们之间分别建立了相应的关联关系。用户和角色、用户和权限分别都是多对多的关系,所以分别在它们之间建立了关系映射表。根据实际需要创建了字段。至此,一个论坛的数据库设计基本已经有了一个雏形,剩下的工作就是细化。第一次接触数据库设计,感觉很多思想性的东西是很重要的,另外就是对数据库设计的经验,和对行业知识的了解也是必不可少。培养设计的能力,不是一它两天能够成功的,重在积累!

下面是袁老师一步步现场讲解和画出的E-R图:
分享到:
评论

相关推荐

    数据库管理员日记.PDF

    - **6月10日至6月14日**:进一步优化系统性能,处理新的技术挑战,如缓存链(cache buffer chains)问题。 - **6月15日至6月19日**:在青岛进行技术支持,处理紧急事件,确保系统稳定运行。 - **6月20日至7月23日...

    智能化工程施工日记.doc

    2. **表格生效日期**:2005年2月1日,这是施工日记开始使用的日期,也可能是工程开始的时间点。从这个日期起,所有与工程相关的重要活动和变更都应在此日记中记录。 3. **序号**:用于区分每天的施工记录,方便按...

    电子商务实习日记.doc

    【电子商务实习日记】这篇文档记录了作者在2014年2月至3月期间在西安西木电子科技有限公司实习的经历,这家公司主要通过阿里巴巴和淘宝平台进行销售。以下是从日记中提炼出的相关知识点: 1. **电子商务运营基础**...

    张一鸣微博记录.pdf

    6. **清晰沟通的价值**:在2010年10月31日的微博中,张一鸣提到了模糊表达对于工作效率的影响,并列举了一些常见的模糊词汇,强调清晰准确的沟通对于团队合作至关重要。 7. **快速理解与表达**:张一鸣认为能够快速...

    安全技术台账培训资料全.doc

    10. **工伤事故处理**:要求项目部每月报告安全生产情况,即使无事故也需要记录,以备查阅。 11. **合格证、保险与措施费**:涉及安全防护设备的合格证明,保险购买和安全措施费用的财务记录,确保资金投入到位。 ...

    OracleERP项目系统操作培训-财务-总帐-V0.pptx

    日记帐信息层次结构则帮助组织和管理凭证的详细信息,包括日记帐批、日记帐头和日记帐行,每部分都有其特定的作用和内容。 在实际操作中,财务人员需要熟悉以上各项功能,以确保总帐模块的高效运行。通过培训,财务...

    安全监理台帐培训资料全.doc

    文档“安全监理台帐培训资料全.doc”是关于建设工程安全监理的重要参考资料,包含了多个关键环节的安全管理和监控要点。以下是对其中涉及的知识点的详细说明: 1. **项目委托监理合同**:这是监理工作的基础,明确...

    保险行业核心业务系统容器化之路.pptx

    从2018年10月至2019年5月,经过一系列的培训和试点项目,成功实现了5个关键应用的容器化迁移,建立了CICD流水线体系,提升了应用迭代能力和业务的弹性伸缩能力。 在数字化转型的过程中,组织建设是关键。公司需要...

    记录一下自己找“python爬虫工程师实习生”岗位的经历.pdf

    10. **自学能力**: 自学Python和爬虫四个月即找到实习工作,体现了较强的自学能力和适应性,这对于实习生来说是非常重要的素质。 11. **选择因素**: 求职者在选择公司时考虑了地理位置(离家近)、住宿安排等因素,...

    2021传染病防治半年工作小结.docx

    服务中心在10月至3月期间,严格执行传染病报告制度,共报告了5例传染病,包括水痘、乙肝、丙肝、腮腺炎和梅毒。所有病例信息完整,报告及时。同时,定期进行自查,检查门诊日记和住院记录,未发现漏报现象,体现了其...

    [详细完整版]用友实习报告.doc

    实习内容 3 2.1用友U8产品的学习 3 2.1.1软件应用领域 4 2.1.2用友ERP-U8应用的系统运行环境: 5 2.1.3用友ERP-U8的系统安装 6 2.2用友公司结构 9 3实习心得 10 4 实习日记 10 参考文献 12 5 附录: 12 (二)用友...

    20xx年上半年校长个人述职报告.docx

    5. 四育并举:学校实施的“礼仪”、“感恩”、“责任”、“卫生”四大培训,目的是提升学生的综合素质,塑造良好的校风和道德素质。 6. 每期一事:结合“每月一事”的理念,学校组织各类活动,如趣味运动会、感恩...

    院团委工作总结4篇.doc

    5. 内部信息员制度:旨在加强部门间沟通,信息员每月整理活动信息并上传,便于工作总结和信息共享。 6. 主题团日活动:围绕特定主题,如建团和建校周年纪念,开展多种活动形式,如参观、交流、志愿服务等。 7. ...

    质量记录表格汇编.doc

    5. 文件更改通知书:通知相关人员文件有更新,确保所有人在使用最新版文件。 6. 计算机登记表:登记公司电脑等硬件设备,便于资产管理和维护。 7. 收文(图)登记表:记录收到的文件和图纸,确保信息不丢失。 8. ...

    店长周月工作自查表.doc

    6. 培训与发展:通过培训记录跟踪员工的学习进度和效果,提高团队的专业技能。 7. 销售报告与货品管理:周报告、月报告、总结报告以及货品盘存核对,帮助店长掌握销售状况,及时调整库存,确保货品流动的顺畅。 8....

    里诺进销存管理软件3.39(含注册机)

    提供完备的帐务系统,月记帐、日记帐,提供多种综合查询及统计报表功能、软件提供多种日报表、月报表,软件提供庞大的图表分析系统及库存、经营报警系统,多方位为企业经营决策提供服务。 14.安全可靠的数据库备份...

    材料行业省会运维中心基站室基站维护班机务员岗位说明书.doc

    - 岗位分析日期:2003年5月7日 2. **主要职责**: - 职责一:负责基站的巡检、维护及障碍处理,约占工作时间的55% - 工作包括基站的日常维护和巡检,记录检查情况 - 快速处理基站障碍,并填写故障处理表 - ...

    易用仓库管理系统7

    6、软件提供了完备的帐务系统,可以随时查询或打印月记帐、日记帐。多方位为企业经营决策提供服务; 7、货品和来往单位资料支持树形分类管理; 8、支持自定义单据打印格式,可以任意更换打印机及纸张类型,支持单据套...

    十堰市建设工程安全资料台账及用表.docx

    10. **工伤事故处理**:项目部需要定期报告安全月报表,即使无事故也要记录,确保及时上报伤亡事故。 11. **合格证、保险与措施费**:确保使用的材料、设备符合安全标准,提供合格证和购买或租赁发票。同时,要记录...

Global site tag (gtag.js) - Google Analytics