学会sql数据库关系图(Petshop)

很久以前就知道微软的Petshop的很经典,昨天抽出时间去学习,一开始还真的不适应,什么成员资格,还真的看不太懂,运行petshop想从登陆学起,但是用户名和密码都不知道,后来发现有更注册的页面,自己注册了一个页面,才发现还得从数据库出发。花了这么多时间最终还是回到了数据库,但是数据库中一张一张的表格找不到脚本,也不是自己设计的数据库,完全没有一点头绪,后来突然想起来sql有个数据库关系图,可以很快的适合数据库程序员很快的掌握数据库表之间的关系。于是开始了我的百度之旅,关于数据库的关系图的文章还真的很少,于是我开始根据petshop,然后建立数据库关系图,开始掌握数据库关系图。我点击MSPetShop4Services这个数据库,存放着用户的信息。但是原版的是没有数据库关系图。

  首先我们自己动手来新建一张数据库关系图吧,找到相应的数据库(图1),在第一行中有个数据库关系图,我们右击选择新建数据库关系图(N),如图2:

      (图1)              (图2)

  这个时候会跳出一个添加表对话框,这里我们可以选择我们想要的表,如果想要全部选中,则这样操作,先鼠标点重第一个然后按住shift+鼠标点重最后一个,来完成操作。最后表格位子整理一下,然后ctrl+s保存一下,数据关系图的名字,那么数据库关系图基本建立好了。接下来就是分析了。

          (添加表对话框图)                          (选中表对话框图)

  整个MSPetShop4Services数据库的关系图。整个这幅图,是不是看着一张一张的表格了解表之间的关系舒服多了,当然我们还是要看懂整个表的意思,首先最上面的是表名,下面的都是字段,有些字段左边有个钥匙,那是主键的意思。在表之间有个线连着就说明这两个表之间存在主键和外键的关系,其中一半都有钥匙的指的是主键,一个无穷大的符号表示的外键。但是不知道细心的朋友有没有发现一个问题,比如说aspnet_Paths和aspnet_PersonalizationAllUsers表之间的线的两端都是钥匙的,我也找了很久资料没有找到,于是自己写代码测试了,到底是什么意思。

通过自己的代码了解图中线的含义:

我自己定义是一个学生选课的关系图:

sql脚本代码如下:

复制代码 代码如下:
CREATE TABLE Student
(
[Sid] INT NOT NULL PRIMARY KEY, --学生编号
SNAme VARCHAR(10)   NOT NULL --学生姓名
)

CREATE TABLE Course(
[Cid] INT NOT NULL PRIMARY KEY, --课程编号
CName VARCHAR(10) NOT NULL --课程名
)

CREATE TABLE SC(
[Sid] INT NOT NULL,
[Cid] INT NOT NULL,
Grade INT NOT NULL, --成绩
FOREIGN KEY([SID]) REFERENCES Student2([Sid]),
FOREIGN KEY([CID]) REFERENCES Course2([Cid])
)

出来的关系图如下:

  这个数据图是我们知道的主键外键的关系,也是符合我们思维的。

  接着我在代码里面改了一行代码,图就变调了,代码如下:

复制代码 代码如下:
CREATE TABLE Student2
(
[Sid] INT NOT NULL PRIMARY KEY, --学生编号
SNAme VARCHAR(10) NOT NULL --学生姓名
)

CREATE TABLE Course2(
[Cid] INT NOT NULL PRIMARY KEY, --课程编号
CName VARCHAR(10)      NOT NULL      --课程名
)

CREATE TABLE SC2(
[Sid] INT NOT NULL PRIMARY KEY,
[Cid] INT NOT NULL,
Grade INT NOT NULL, --成绩
FOREIGN KEY([SID]) REFERENCES Student2([Sid]),
FOREIGN KEY([CID]) REFERENCES Course2([Cid])
)

  对应的关系图如下:

  我相信你们看到了吧,两个钥匙的线段。好了那我们应该了解了吧,我们可以得出这样的结论,如果一个表中是主键,而另一个表中却是普通的字段,那显示的效果是一个钥匙一个无穷大,钥匙指向主键,无穷大指向外键,但是当外键在另一张表中也作为主键,那此时无穷大也变为了钥匙。此时我们不能看线了。那要怎么分析主键和外键呢?别急往下看。这里介绍两个方法,第一个比较简答,我们把鼠标放到这个线上面,他会跳出一行提示,在前面的表名是主键,后面的是外键,最后的是关系的名字(这个是我自己看表得出的结论),还有一个方法,但是我们事先也要用这个方法,知道这个关系的名字,然后点击两个表中随便的哪一张表,右击选择关系,找到相应的关系名,然后选择右边的表和列规范,里面就写明了主外键的关系了。好了就写到这里了。

  总结:
  遇到难的我们先不要怕,从最基本的做起,也可以自己建立测试数据来验证遇到的新的知识。

时间: 2024-12-27 01:46:14

学会sql数据库关系图(Petshop)的相关文章

学会sql数据库关系图(Petshop)_MsSql

很久以前就知道微软的Petshop的很经典,昨天抽出时间去学习,一开始还真的不适应,什么成员资格,还真的看不太懂,运行petshop想从登陆学起,但是用户名和密码都不知道,后来发现有更注册的页面,自己注册了一个页面,才发现还得从数据库出发.花了这么多时间最终还是回到了数据库,但是数据库中一张一张的表格找不到脚本,也不是自己设计的数据库,完全没有一点头绪,后来突然想起来sql有个数据库关系图,可以很快的适合数据库程序员很快的掌握数据库表之间的关系.于是开始了我的百度之旅,关于数据库的关系图的文章还

RDS SQL Server 创建数据库关系图(Database Diagrams)

背景介绍     SQL Server 关系图是一个非常简单易用且方便的工具,可以直观的把数据库中表之间的关系展现出来,不用手动整理或者写脚本整理各个表之间的关系,如下图.      RDS SQL Server 2008 R2由于权限的限制,默认是不支持创建关系图的.但是,近期遇到一些客户,同一个实例中,同一个账号,在两个数据库DB1和DB2都是读写权限,但是DB1上面可以创建关系图, DB2上面却不可以.而且这种情况,在众多其他的RDS 2008 R2实例中,很难复现.     针对上述问题

sql-关于SQL的。。。已建好表怎么查看数据库关系图??

问题描述 关于SQL的...已建好表怎么查看数据库关系图?? 关于SQL2008的 已建好表怎么查看数据库关系图??有哪位大神说说嘛??能给个流程吗?? 解决方案 用management studio看 解决方案二: 另外你专门问弱智的问题,又从不采纳.下次再这样,姐姐就不和你玩啦.

卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法_MsSql

可怜我的C盘本来只有8.XG,所以不得不卸载掉它. 卸载掉本身没啥问题,只是昨晚突然发现 Sql Server 2008 R2 Management Studio 突然不能新建数据库关系图了,一建立就会报"找不到指定的模块(MS Visual Database Tools)"的错误: 为了这个错误我甚至认真评估了重新配置数据库的可能性.无奈这个R2的SQL2008打过SP1了,无论是修复还是重装都是很花时间的事情,所以不甘心,在Google上找了一圈.终于找到个类似的主题反应了这个问题

外键-我的天啊.SSMS中的那个 数据库关系图 和 视图 到底有什么不同?

问题描述 我的天啊.SSMS中的那个 数据库关系图 和 视图 到底有什么不同? 在数据库关系图中 可以连接 用主键设置和别的数据库设置外键.这个我知道.但是这个外键到底有什么用了? 我在视图中同样样连接2个表.(随便问一下为什么左边的那个连接没有小钥匙和无限的符号...)我看了下连接如果用SQL语句写的话就是相当于INNER JOIN.我完全晕了.那我在用SELECT 去做查询的时候直接写INNER JOIN 不就行了?为什么还要去 数据库关系图 设置好关系图..比如这样.. 解决方案 视图相当

sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象的解决方法

sql2005|备份|对象|解决|数据|数据库  sql2000备份的数据库还原到sql2005后,选择"数据库关系图"提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象.若要继续,请首先使用"数据库属性"对话框的"文件"页或  ALTER  AUTHORIZATION  语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象.       解决方法如下: 1.设置兼容级别为90(2005为90)  USE  [maste

如何用workbench导出mysql数据库关系图_Mysql

1. 打开mysql workbench,选择首页中间"Data Modeling"下方的第二栏"Create EER Model From Existing Database";2. 在"Stored Connection"里选择"Manage Stored Connections...";3. 在Manage DB Connections里选择"New"新建连接,并在左侧输入框里填好想连接的数据库信息;

创建数据库关系图失败解决方法

在新建数据库或附加数据库后,想添加关系表,结果出现下面的错误: 此数据库没有有效所有者,因此无法安装数据库关系图支持对象.若要继续,请首先使用"数据库属性"对话框的"文件"页或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象. 按照第一种方式更改怎么也不行,并且文件的所有者也是sa.网友给出了一种方法,运行以下命令:  代码如下 复制代码 ALTER AUTHORIZATION ON database::myd

[转]"此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的解决方法

原文:http://www.cnblogs.com/lfp1010/archive/2008/10/01/1302899.html   sql2000备份的数据库还原到sql2005后,选择"数据库关系图"提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象.若要继续, 请首先使用"数据库属性"对话框的"文件"页或   ALTER   AUTHORIZATION   语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象.