说明:

一.学会用开发语言进行数据库编程,其关键是在于学会sql语言,开发语言只不过给程序员提供了一个操作数据库的接口罢了。

二. 本人也是初学者,采用的数据库设计软件是powerdesigner。利用该软件用户可以设计E-R图,然后软件会自动根据E-R图生成创建数据库表,即表间约束的sql语句。

三.由于powerdesigner安装软件大于220M,无法上传,所以请使用者自己百度下载。

四.学习数据库的数据。本人用的是微软的sql2000.sql语句的参考书籍是《SQL Server 2005基础教程》闪四清编著,清华大学出版社。数据库理论概念学习用的教材是数据库系统概念《DATABASE SYSTEM CONCEPTS》作者:Abraham Silberschatz, Henry F.Korth ,S.Sudarshan 高教出版社,本人用的是英文版本的。强烈向大家推荐这本书。之前在大学的时候学数据库用的是王珊,萨师宣编著的那本,结果学完了还是一头雾水。对于《DATABASE SYSTEM CONCEPTS》初级学习者只需要学习 2,3,4,6,7,14,15,16,10章即可。北京邮电大学计算机系的本科生,也是学的这几章。

五.本人下面设计的数据库,是对《DATABASE》书第三章的E-R图进行的实现(初学者也可直接从我的CSDN下载空间下载数据库生成代码,直接生成该数据库,直接用于各种操作练习,毕竟一个规模小的数据库,更适合初学者进行操作)
六.如果大家有学习需要建议到我指定的下载地址去下载我的powerdesigner设计工程,以此为实例进行学习,因为在博客中只能将重点略加说明。

具体设计:

打开POWERDESIGNER软件,文件菜单->新模型->概念数据模型,设置E-R图

 
设计E-R图的时候要注意三点:1:属性名不能重复例如:table 1 有一个属性叫做 customer-id ,那么table 2 中就不能有名字为customeer-id这个属性了,否则设计软件将会出差。
2:我们下面说一下关系的 maping cardinality ,以及 cardinality constraint
以实体customer和loan为例。
customer和loan 之间的映射关系应为many to many .即一个顾客可以有1个多个或是没有贷款,一个贷款可以属于一个或多个用户。所以 customer->loan的映射限制应为0,n。即一个customer最少可以有0个贷款,最多可以有很多(n)个贷款;loan->customer的映射限制为(1,n)。即一个贷款可以被至少一个客户所拥有,或被很多个用户所拥有。(注意:如果一个贷款没有用户,那么它在作为loan实体集的一个实体的意义也就没了)。如下图所示


3:我们要说一下Mandatory的意思。它的本意是必须,在这里只不为空的意思。即NOT null.我们再举一个例子进行说明:
在银行实体中,每个银行实体的branch-city选项都应该不为空,assets选项可以为空(银行可能刚建立,没有资产。但是银行一旦建立,就应该有所在地,不可能在天上建!)如下图所示:

在我们设计好了E-R 图之后,选择菜单tools->generate physical data model。如下图所示

我们可以看到一共六个表。原 E-R 图中有四个实体(branch ,customer,loan,account)四个关系(branch-loan,branch-account,borrower,depositer。由于loan 与branch的关系是many to one ,并且,loan实体集中的每个loan实体都参与到了branch-loan关系中,所以这个关系对应的表和“many” 一方的实体集所对应的表进行了合并,正如《database》一书中2.9.3.2 combination of tables 一节中所描述的理论那样。关系branch-account也是这样弱化的。
细心观察可以发现:上图中的account,loan表中的属性,比E-R图中account,loan实体多了一个branch-name属性。
上面的现象我们也可以这样总结:E-R 图中的MANY TO MANY 关系映射成关系数据库中的表,MANY TO ONE 关系映射成关系数据库中,代表MANY 一方实体集的表中的一个外键约束。
最后一步:在physical data design 模式下。即powerdesign当前客户区显示的是.pdm文件。选择database菜单->generatedatabase选项,即可产生 构建数据表,以及数据表中各种约束的sql语句。
还要补充说明一下:
我们在产生physical data model 时,会出现如下对话框,在DBMS 下拉列表中,我们要选择Mrosoft sql server2000。

新手学习数据库(一)用Powerdesigner设计数据库的更多相关文章

  1. 采用PowerDesigner 设计数据库

    PowerDesigner设计数据库的教程网上都有,最好的是我一位同学写的,地址: 点击这里 我的大致流程如下: 首先要以管理员的身份打开PowerDesigner,如果没这么做,将导致后面无法创建S ...

  2. PowerDesigner 设计数据库中常用脚本

    PowerDesigner 设计数据库中常用脚本 数据库设计 物理模型设置 Name转Comment脚本 '********************************************** ...

  3. 学习笔记31_ORM框架ModelFirst设计数据库

    ModelFirst就是先设计实体数据类型,然后根据设计的数据类型,生成数据库表 1.新建项--ADO.NET实体数据模型--空数据模型--进入模型设计器(点击xxx.edmx文件也能进入设计器). ...

  4. 使用POWERDESIGNER设计数据库的20条技巧(转)

    1.PowerDesigner使用MySQL的auto_increment ◇问题描述: PD怎样能使主键id使用MySQL的auto_increment呢? ◇解决方法: 打开table prope ...

  5. 利用PowerDesigner设计数据库

    PowerDesigner非常强大, 可以利用它完成数据库的设计. 1.下载地址:http://pan.baidu.com/s/1DsLrg 2.表设计: 建立概念数据模型(Conceptual Da ...

  6. 使用PowerDesigner设计数据库

    1.快捷键CTRL+N 创建 New Model 选择如下图,并设置 Model name 单击OK 2.使用工具添加实体 双击Entity_1,填上如下图信息   切换选项卡,添加属性信息 其中 M ...

  7. 如何使用PowerDesigner设计数据库关系模式

    /*==============================================================*/ /* DBMS name: Microsoft SQL Serve ...

  8. PowerDesigner设计Name和Comment 替换

    这两天在用powerdesigner设计数据库.一直以为name就是注释名字来着.后来生成sql语句 怎么就没有注释信息那. 后来看了半天才知道自己范2了. 通过各种信息查找.大多都是改databas ...

  9. 使用PowerDesigner设计建造MySQL数据库

    使用PowerDesigner设计建造MySQL数据库 一.使用PowerDesigner制作建库脚本 1.设计CDM(Conceptual Data Model) 2.选择 Tools -> ...

随机推荐

  1. 格式化说明符定义、转义字符、枚举、结构体、typedef

    1.格式化说明符定义: %i,%d:输出十进制整型数 %6d:输出十进制整型数,至少6个字符宽 %li,%ld:输出长整数 %u:输出无符号整数 %lu:输出无符号长整数(相当于:unsigned l ...

  2. 我的WebX框架学习总结与心得分享

    最近学习了webx框架, 利用博客园跟大家分享一下自己的学习心得; 周建旭 2014-08-21 网上关于webx的资料少的可怜, 怎么办?  这种情况下不用去求助别人求人只会耽误时间, 不用畏惧; ...

  3. (转)GDT与LDT

    网址:http://blog.csdn.net/billpig/article/details/5833980 保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成段描述符寄存器 ...

  4. unity手游之聊天SDK集成与使用一

    手游中都有聊天功能,比如公会,私聊,世界聊天,那么找一个好用,功能强大的SDK的可以节省很多精力,帮助我们提高开发速度与游戏质量. 写本篇博文是为了方便使用这个SDK做聊天模块的程序,避免许多坑,我在 ...

  5. c++ 16 this 和 继承 及继承机制中的构造函数 与 析构函数

    #include <iostream> #include <string> using namespace std; class Animal { public: Animal ...

  6. 解决Maven不能下载“oracle、aspectjweaver、com.springsource.net.sf.cglib”jar

    鸣谢网址:http://www.cnblogs.com/dongyangbolg/p/3455422.html http://www.cnblogs.com/ysq0908/p/4737977.htm ...

  7. ExtJS4.2学习(18)时间控件(转)

    鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-12-22/190.html 感谢“束洋洋 ”的付出. 前言 ...

  8. 团体程序设计天梯赛-练习集L2-011. 玩转二叉树

    L2-011. 玩转二叉树 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜 ...

  9. Spring mvc 模式小结

    http://www.taobaotesting.com/blogs/2375 1.spring mvc简介 Spring MVC框架是一个MVC框架,通过实现Model-View-Controlle ...

  10. codeforces #309 div1 D

    求最小值最大显然是要二分 二分之后转换成了判定性问题 我们考虑哪些点一定不能选 显然是将所有可选点选中之后依然不满足条件的点不能选 那么我们不妨维护一个堆,每次取出堆顶看看是否满足条件 不满足条件就p ...