
自增长primary key
采用自增长primary key主要是性能 早期的数据库系统 经常采用某种编号 比如身份z号码 公司编号等等作为数据库表的primary key 然而 很快 大家就发现其中的不利之处
比如早期的医院管理系统 用身份z号码作为病人表的primary key 然而 第一 不是每个人都有身份z第二 对于国外来的病人 不同国家的病人的证件号码并不见得没有重复 因此 用身份z号码作为病人表的primary key是一个非常糟糕的设计 考虑到没有医生或者护士会刻意去记这些号码 使用自增长primary key是更好的设计
公司编号采用某种特定的编码方法 这也是早期的数据库系统常见的做法 它的缺点也显而易见 很容易出现像千年虫的软件问题 因为当初设计数据库表的时候设计的位数太短 导致系统使用几年后不能满足要求 只有修改程序才能继续使用 问题在于 任何人设计系统的时候 在预计某某编号多少位可以够用的时候 都存在预计不准的风险 而采用自增长primary key 则不存在这种问题 同样的道理 没有人可以去记这些号码
使用自增长primary key另外一个原因是性能问题 略有编程常识的人都知道 数字大小比较比字符串大小比较要快得多 使用自增长primary key可以大大地提高数据查找速度
避免用复合主键 (pound primary key)
这主要还是因为性能问题 数据检索是要用到大量的 primary key 值比较 只比较一个字段比比较多个字段快很多 使用单个primary key 从编程的角度也很有好处 sql 语句中 where 条件可以写更少的代码 这意味着出错的机会大大减少
双主键
双主键是指数据库表有两个字段 这两个字段独立成为主键 但又同时存在 数据库系统的双主键最早用在用户管理模块 最早的来源可能是参照 *** 作系统的用户管理模块
*** 作系统的用户管理有两个独立的主键 *** 作系统自己自动生成的随机 ID (Linux windows 的 SID) login id 这两个 ID 都必须是唯一的 不同的是 删除用户 test 然后增加一个用户 test SID 不同 login id 相同 采用双主键主要目的是为了防止删除后增加同样的 login id 造成的混乱 比如销售经理 hellen 本机共享文件给总经理 peter 一年后总经理离开公司 进来一个普通员工 peter 两个peter 用同样的 login id 如果只用 login id 作 *** 作系统的用户管理主键 则存在漏洞 普通员工 peter 可以访问原来只有总经理才能看的文件 *** 作系统自己自动生成的随机 ID 一般情况下面用户是看不到的
双主键现在已经广泛用在各种数据库系统中 不限于用户管理系统
以固定的数据库 表应付变化的客户需求
这主要基于以下几个因素的考虑
大型EPR系统的正常使用 维护需要软件厂商及其众多的合作伙伴共同给客户提供技术服务 包括大量的二次开发
如果用户在软件正常使用过程中需要增加新的表或者数据库 将给软件厂商及其众多的合作伙伴带来难题
软件升级的需要
没有一个软件能够让客户使用几十上百年不用升级的 软件升级往往涉及数据库表结构的改变 软件厂商会做额外的程序将早期版本软件的数据库数据升级到新的版本 但是对于用户使用过程中生成的表进行处理就比较为难
软件开发的需要
使用固定的数据库库表从开发 二次开发来说 更加容易 对于用户使用过程中生成的表 每次查找数据时都要先查表名 再找数据 比较麻烦
举例来说 早期的用友财务软件用Access作数据库 每年建立一个新的数据库 很快 用户和用友公司都发现 跨年度数据分析很难做 因此这是一个不好的设计 在 ERP 中 很少有不同的年度数据单独分开 一般来说 所有年份的数据都在同一个表中 对于跨国公司甚至整个集团公司都用同一个 ERP 系统的时候 所有公司的数据都在一起 这样的好处是数据分析比较容易做
现在大多数数据库系统都能做到在常数时间内返回一定量的数据 比如 Oracle 数据库中 根据 primary key 在 万条数据中取 条数据 与在 亿条数据中取 条数据 时间相差并不多
避免一次取数据库大量数据 取大量数据一定要用分页
这基本上是现在很多数据库系统设计的基本守则 ERP 系统中超过 万条数据的表很多 对于很多表中的任何一个 一次取所有的会导致数据库服务器长时间处于停滞状态 并且影响其它在线用户的系统响应速度
一般来说 日常 *** 作 在分页显示的情况下面 每次取得数据在 之间 系统响应速度足够快 客户端基本没有特别长的停顿 这是比较理想的设计 这也是大型数据库系统往往用 ODBC ADO 等等通用的数据库联接组件而不用特定的速度较快的专用数据库联接组件的原因 因为系统瓶颈在于数据库( Database) 方面(数据量大) 而不在于客户端(客户端每次只取少量数据)
在 B/S 数据库系统中 分页非常普遍 早期的数据库系统经常有客户端程序中一次性取大量数据做缓冲 现在已经不是特别需要了 主要原因有
数据库本身的缓冲技术大大提高
大部分数据库都会自动将常用的数据自动放在内存中缓冲 以提高性能
数据库联接组件的缓冲技术也在提高
包括 ADO 在内的一些数据库联接组件都会自动对数据结果集(result set)进行缓冲 并且效果不错 比较新颖的数据库联接组件 比如 Hibernate 也加入了一些数据结果集缓冲功能
当然 也有一些数据库联接组件没有对数据结果集进行缓冲 比如 JDBC Driver 不过几年之内情况应该有所改观 也有些不太成功的数据缓冲 比如 EJB 中的实体Bean 性能就不尽如人意 实体Bean数据也是放在内存中 可能是因为占用内存过多的缘故
lishixinzhi/Article/program/SQL/201311/16157问题一:有什么好的数据库设计软件 foxbase是DOS版的已经没有了 多数是使用VFP在工作中作为一个数据管理工具还是很得心应手的,但是靠这个找工作是很少了(只能算一个特长吧)。
C语言是个基础除非搞工控之类的专用硬件开发 实际很少使用。现在是用它的可视编程版本VC或BCB了 如果会这两门语言中的一种 加上一门数据库(SQL,ORACLE,DB2等
所以,看来您需要在所具备的基础上再学习一下才可以
最好的办法是直接上手作一系统,需要资料、有问题就到网上查、问,还要充分利用系统帮助,不需要太多的书。
问题二:数据库设计,这个是用什么工具画的 visio之类
问题三:数据库设计软件的作用是什么? 假如你设计的数据库同时用于oracle,db2,你的SSMS能搞定吗?如果用pd设计,那么基本上他设计出的模型能用于很多数据库。
问题四:数据库设计工具有哪些 SI Object Browser ER 中文版。
1,功能上几乎涵盖了PD,ERWin等所有
2,全中文界面,别提多亲切了
3,支持Win7/Win8,Oracle12c,32位64位各种高大上新版本
4,价格不贵量又足,业界良心啊
问题五:数据库是用什么软件制作 数据库软件本身,是编程语言编写的。
数据库文件,是由数据库软件来管理的。
问题六:我想做一个数据库,需要什么软件啊?? 你自己是程序员?
数据库(access、mysql、oracle)+川态网站语言(jsp、php)+服务器(tomcat、iis) 即可。
你是业务人员?
excel。
你是管理人员?
建议你找人做一个软件,不仅可以管理资料,对于考勤,档案、工资、部门、人员都可以实现管理。 方便又高效。
问题七:数据库建模设计用什么软件比较好 创建数据库
选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从d出来的快捷菜单中选择【新建数据库】命令。
执行上述 *** 作后,会d出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上 *** 作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
问题八:数据库管理软件制作用什么软件 管理软件有:DB2
ORACLE
MySQL
ACCESS
Visual Foxpro
MS SQL Server
采用楼上
如果是制作的话 安全稳定没毒的用C++当然要学习 如果是看得懂好学就用360天天报毒的易语言把
问题九:求适合做数据库设计的软件? pd,powerdesigner
power designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具。使用它可以分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。在这里,概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义;物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化。
问题十:想一个做数据库,请问用什么软件呢? 看你是做什么使用的。如果是简单嵌入式开发,涉及的数据量不是很大,那你可以选择sql server,用它做服务用也可以,当然你要注意怎么使用。如果实在本地使用,如我们的自动取款机,你可以适当的使用sqlist,这种小型数据库也不错。具体使用的方法可以与我联系及协议等等。如果你只是简单的做一些小东东而用的数据库,如:公交车上的读卡器等等,你可以尝试使用像表格方式来埂储数据。具体的方法及用法估计你还是要问我。当然了你可以使用大型数据库DB2或者是Oreacle等等,不过这些都是用来做大型服务器用的。还有你选择的编程语言也很重要,像楼上说的mysql,最好是在PHP语言中使用等等。
数据库管理系统是一种能对计算机中所存放的大量数据进行管理和控制的系统软件。数据库管理系统的作用:
1、计算机数据库管理系统本身就能够加密数据,而将其与单纯的数据加密系统结合在一起更能提高数据的安全性。
2、计算机数据库管理系统最大的优势在于能够进行数据信息的长期存储和管理。而这一特点在很多领域都有广泛的应用。
3、计算机数据库管理系统主要就是数据的集合存储,在这一存储的过程中,管理系统会按照一定的模式进行数据存储,并建立较为复杂的数据结构关系。这样既能实现数据的单独处理,也能实现数据结合的使用、处理,从而实现高效率的数据恢复。
4、应用计算机数据库管理系统能够提高多媒体的管理水平。技术人员能够利用计算机数据库管理系统降低多媒体管理的复杂程度,减少工作量,从而提高多媒体管理效率。
数据库管理系统属于什么软件
系统软件。数据库管理系统是一种 *** 纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
数据库管理系统是一个能够提供数据录入、修改、查询的数据 *** 作软件,具有数据定义、数据 *** 作、数据存储与管理、数据维护、通信等功能,且能够允许多用户使用,另外,数据库管理系统的发展与计算机技术发展密切相关。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)