🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.database
Article #1779

��ݽ�ģ����ݿ����

#1779
From: do everything for you
Date: Fri, 09 Dec 2005 14:40
118 lines
19746 bytes
(��Դ��http://erwin.softwarechn.com/view.asp?ID=220)

                        ��ݽ�ģ����ݿ���� 

ժ��Ҫ�����Ĵ���ݽ�ģ�ĽǶ�̽������ݿ���Ƶļ����ͷ��������������ͨ����ݽ�ģ�������һ�µġ��ɹ������ݿ⣬�Խ���ϵͳ������ά���ijɱ����ص������˲���IDEF1X��ݽ�ģ���������߼�ģ�͵ķ����Ͳ��裬�����Oracle��ݿ�����ͨ���߼�ģ�ͽ�������ģ�͵Ĺ�̣��Լ�ʵ���߼�ģ������ص�ҵ�����ļ�����
�ؼ�ʡ���ݿ⡡IDEF1X���߼�ģ�͡�����ģ��

1. ��ݽ�ģ������

�������ڵķ����ڽ�����Ϣϵͳʱֻע�ض�����ݵ��û���ͼ�ͼ������ͼ���û���ͼ�ֳơ��ⲿģʽ�������Բ�����Ա�ճ������ı������Ļ��ʽ��������ݣ���Ƚ�ֱ�ۣ����ǽṹ�����������ͼ�ֳơ��ڲ�ģʽ�������ݴ洢�ͼ������ļ��ṹ������ݣ��������ض��ļ����ƽ̨����ݴ��?����
���������ڲ�ģʽ����ֱ�����û����н���������������ⲿģʽ���ѽڣ�����ͬһ��ݶ�ζ����Ҳ�һ�¡�Ϊ�����һ���⣬����������һ���м���ͼ����������ģʽ����������ҵ��ݵ�һ�����ɶ��壬��׼ȷ��������ҵ��������󣬲������ھ��������洢����ʡ�
������ݽ�ģ����ͼ�λ�������������ҵ����Ϣ�����ҵ�����Ҳ���ǽ����߼����ģ��(���¼���߼�ģ��)����������������һ�����û����й�ͨ����ȷ������һ����������Ϊ��ݿ�������ƵĻ��Ա�֤�������ģ�ͳ������Ӧ��Ҫ�󣬲���֤��ݵ�һ���ԡ������ԡ�

����Ŀǰ�Ƚ����е���ݽ�ģ������IDEF1X������IE������IE(lnformation Engineering)������James Martin�ȿ������ڹ�ҵ�������Ž�Ϊ�㷺��Ӧ�á�
�������Ľ���IDEF1X������IDEF1X��������վ�Ļ��ڹ�ϵ��ݿ����۵���ݽ�ģ����������ʵ�ֹ�ϵ��ݿ���߼���ݽṹ��Ŀǰ�ѹ㷺Ӧ������������ҵ����ҵ����֧�ֹ㷺��ҵӦ�á�IDEF1X�����ľ����������ο�����[3]��
����IDEF1Xģ�͵Ļ�ṹΪ��
����1)ʵ��(���ˡ��ص㡢����¼���)�÷����ʾ��
����2)ʵ��֮��Ĺ�ϵ(��ϵ)���÷���֮������߱�ʾ��
����3)ʵ������ԣ��÷����ڵ������������ʾ��

2.�����߼�ģ��

�����߼�ģ�͵Ľ������û�����������߼�ģ�͵Ĺ�������Ƿ�����Ϣ������ȷҵ������������Զ���ʵ������г���ͼӹ��Ĺ�̡���ʽ�����ǹ�ϵ��ݿ��߼���ƵĻ���ϵģ�Ϳ��Դӵ�һ��ʽ�����巶ʽ��������ֽ⣬�ù��Ҳ��Ϊ�淶��(Normalize)���淶���Ļ�˼�����������������в����ʵIJ��֣�ʹ����ϵģʽ�ﵽij�̶ֳȵķ��룬����һ��һ�ء�(One Fact in One Place)�����ԭ�����зdz��ϸ����ѧ���塣Ŀǰһ����õ���ʽ����������ĺ��忴��һ����ϵ���ʽ�Ĺ�ϵ���������������������
����1.ÿ�����Ե�ֵΨһ�������ж����ԣ�
����2.ÿ���������Ա�����ȫ��������������������һ���֣�
����3.��ϵģʽ�в����ڴ���������
�����߼�ģ���Ƿֽ׶Ρ��Զ����½��еġ������߼�ģ��Ҫ������Ŀ�滮����������ʵ�塢����ʵ���Ĺ�ϵ�����������������׶Ρ���ģ�IJ�ͬ�׶β���ͬ�ijɹ�ʵ���ϵ��ͼ(ERͼ)�������ͼ(KBͼ)��ȫ������ͼ(FAͼ)����Щ��ͼ���в�ͬ���﷨�����壬��Ҫ������ڣ�
����a)ERͼ����ʵ�弰ʵ��֮��Ĺ�ϵ���������
����b)KBͼ��ERͼ���϶����Ͳ��ַǼ�����
����c)FAͼ������ȫ���Ǽ����ԣ���һ������˵��߼�ģ��
2.1 ��һ�׶Σ���Ŀ�滮
������Ŀ�滮�׶ε������ǣ�ȷ����ģĿ�꣬������ģ�ƻ�����֯��ģ���飬�ռ�Դ���ϣ��ƶ�Լ��͹淶���ռ�Դ��������һ�׶ι������ص㡣IDEF1Xģ�Ϳ�����IDEF0����ģ�͵Ļ��Ͻ�����IDEF0����ģ�������˹����Լ�����֮��Ĺ�ϵ������Ϣϵͳ����������֮��Ĺ�ϵ��һ����Ϣ��ϵ����ˣ����Դӹ���ģ����ѡ����ص���Ϣ���ټ����������ڵ������Ա���з�̸����ý����߼�ģ������ĵ�һ�����ϡ�
2.2 �ڶ��׶Σ���������ʵ��
����ʵ���Ǿ�����ͬ���������Ե�����ļ��ϣ������е�ÿ����Ա��Ϊʵ���ʵ������ʵ����Դӵ�һ�׶��ռ���Դ������ֱ�ӻ��ӵر�ʶ����������Ƕ����е����ģ�ͽ�����չ�����ƣ����Դ�ԭ�е����ģ����ѡ���ʵ���ʵ�塣����Ǵ��㿪ʼ��������Դ�����б�ʶ����Щ������ʵ��ġ�����������Ǽ������������з������Ƚϡ��ۺϣ��ҳ������ʵ�壬��ݽ�ģ�淶����ʵ���������Ͷ��壬������������IDEF1X�ġ�ͬ��ͬ����򡱡�
2.3 ����׶Σ������ϵ
������һ�׶��γɵ���Ҫ�ɹ��ǹ�ϵ���󡢹�ϵ���塢ERͼ��
������ϵ��ʵ����һ���߼���ϵ���ö��ʻ򶯴ʶ�������ʵ��֮��Ĺ�ϵ���Է�Ϊȷ����ϵ�Ͳ�ȷ����ϵ��ȷ����ϵ�ַ�Ϊ���ӹ�ϵ�ͷ����ϵ�����ӹ�ϵҲ�ơ����ӹ�ϵ������������ʵ��֮�����ϵ�����ӣ�һ��ʵ��(��ʵ��)��������һ��ʵ��(��ʵ��)�������ϵ��ʾʵ����һ�ֲַ�ṹ��һ��ʵ��(����ʵ��)��ʾ��Щ�����ȫ��������(����ʵ��)��Ϊ���Ӽ�����ȷ����ϵ�ֳơ���Զ��ϵ��������ʵ����໥������һ�Զ����ϵ��
������ģ�Ϳ����Ŀ�ʼ�׶Σ������ܰ����й�ϵ����ʾ�ɸ��ӻ�����ϵ����ˣ��ڵ���׶�ֻ����ȷ��Щ��ȷ���Ĺ�ϵ��
���������ϵ�׶εĵ�һ���DZ�ʶ��ͬʵ��ij�Ա�����ܹ۲쵽�Ĺ�ϵ���γ�һ����ά�Ĺ�ϵ������������Ҫע��������DZ����ʶʵ��֮��ļ�ӹ�ϵ��
�����ڶ���ʵ���Ĺ�ϵʱ������ָ��ʵ����������ϵ��ȷ����ϵ��Թ�ϵ���ж��塣��ϵ����󣬿�ʼ����ERͼ���ڵ���׶Σ���ȷ����ϵ������ġ�
2.4 ���Ľ׶Σ������
������һ�׶εijɹ����γɼ��ͼ����������ʵ��ļ������⣬����Ҫ��չ���Ľ�ʵ��͹�ϵ�Ķ��塣���ȣ������в�ȷ���Ĺ�ϵ�Ľ�����ȷ��������(����)��ϵ���߷����ϵ������������м�ʵ�塣�ڴ˻��ϣ���ʶʵ��ĺ�ѡ��ѡ������һ����Ϊʵ�����������עʵ�������
2.5 ����׶Σ���������
��������������ģ�Ϳ��������׶Σ�Ŀ���ǣ�
����a)�������Լ�
����b)��������������ϵ
����c)����Ǽ�����
����d)���鲢�Ľ�ģ�����е����Զ���Ҳ�������IDEF1X�ġ�ͬ��ͬ����򡱡���һ�׶εĽ�����γ�ȫ����ͼ��ȫ������ͼ�Ľ�����־�߼�ģ�ͽ�����ϡ�

3.���������

������һ������߼�ģ��ѡȡһ�����ʺ�Ӧ�û���������ṹ(������ģ��)�Ĺ�̣���Ϊ��ݿ��������ơ���ν��ݿ������ṹ��Ҫ��ָ��ݿ��������豸�ϵĴ洢�ṹ�ʹ�ȡ������������˿����߼���������(�����ʽ)�⣬�����������?����Ҫ������ܵ��Ż�������������ܡ���������ࡢ��ݿ����ϵͳ�Ĺ��ܵȡ�������ƿɷ������ߣ���һ����ȷ����ݿ������ṹ���ڶ���������ṹ�����������������ص���ʱ��Ϳռ��Ч�ʡ������������������Ҫ����ת������ʵʩ�����򣬾�������ƻ��޸�����ṹ����ʱ����Ҫ�����߼���ƽ׶��޸��߼�ģ�͡����Ļ���ORACLE��ݿ����ϵͳ������δ��߼�ģ�ͽ�������ģ�͡�

ʵ�� ��(table) 
���� �ֶ�(Column) 
��ϵ��ҵ����� ��������洢��̣�FK 

�����߼�ģ��ת��Ϊ����ģ�Ͱ������¼������裺
����1)ʵ����(Entity)ת��Ϊ����(Table)
����2)������(Attribute)ת��Ϊ����(Column)��ȷ���е�����(Property)
����3)��ȷ�����ϵ������ģ���е�ʵ�ַ���
����4)ʵ��ҵ�����
����5)���ģ��ת��ΪSQL����
��������ģ�ͱ�����е����Խ�����ȷ�Ķ��壬�����������������(���ض���ݿ����ϵͳ�й�)�����ȣ��ܷ�Ϊ��ֵ����Ч�Թ���ȱʡֵ�ȡ�
����Ϊ�������ݲ�ѯ��Ч�ʣ���Ͼ����Ӧ�û����������ģ���п��ܻ�����ʵ������࣬��ij�̶ֳ��ϻ��ƻ��߼�ģ�͵������ԣ����ǹ淶��(Denormalization)��Ҳ���dz�˵���Կռ任ʱ�䡣
�����߼�ģ���еķ����ϵ������ģ����������ʵ�ַ����������ʦΪ����ʵ�壬רְ����ְ���о���Ϊ����ʵ�壬�����ǻ���Ĺ�ϵ����һ���ǵ���ʵ�ַ�����������һ���?��teacher)���ñ��е���teacher_hiretype����Ϊ��ֵ�������ʵ�����е��������Ϊ��ֵ��Ϊʵ�����ֻ���ķ����ϵ������teacher_begindate�Ͻ���������Ч�Թ���

NOT(teacher_hiretype=��1��and
Teacher_begingdate is null)AND
NOT (teacher_hiretype<>��1��and
Teacher_begingdate is not null)

��teacher_origin��teacher_studentnumber�Դ����ơ��ڶ����Ƕ�?��������ʵ��ͷ���ʵ��ֱ������Զ�Ӧ����ݿ�?��ҵ������ǣ���������ʵ���в���һ����¼ʱ��������Ƹ�������ڷ���ʵ���Ӧ�ı��в���һ����¼���������ͼ�������ѯ��
����
    �߼�ģ���е�ҵ���������ʶ��ϵ���DZ�ʶ��ϵ�������ϵ�ȣ�������ģ����ͨ�����������(RI��Referential lntegrity)��ʵ�֣����������Թ������2��ʾ�����������Թ���ͨ�������¼���ʵ�ַ�����1)��Ӧ�ó���(�ͻ���)ʵ�֣�2)�������˵�����������(Declarative RI)�����������Ψһ����Ķ��壻3)�������˵Ĵ�����(Trigger)��4)�������˵Ĵ洢��̡�

���� ��ϵ���� 
��ʶ��ϵ �DZ�ʶ
(����Ϊ��) �DZ�ʶ
(��������) ���� 
Child Delete None None None None 
Child Insert Restrict Set Null Restrict Restrict 
Child Update Restrict Set Null Restrict Restrict 
Parent Delete Restrict Set Null Restrict Cascade 
Parent Insert None None None None 
Parent Update Restrict Set Null Restrict Cascade 

������Ӧ�ó������ɲ��������Լ���ĺô��Ƿ�����ʱ�������Խϴ�����縺�ɺͿͻ��˸��ӵ�������Ϊ��ۣ����ҵ�ҵ�������仯ʱ�������޸�Ӧ�ó������ʵ�֣�ʹ��ά���ɱ��ϸߡ�����Internet������������죬���ݿͻ��ַ�����������ʢ�У������ϵ�ṹ�������ƣ���Ҫ��ҵ���?�����ڷ������˽��У�������������ݿ����ϵͳҲ�ڳ���һ����չ�����磬����������ݿ�ORACLE 8����֧�ֽ�һ�����ӵ�������Ϊһ����ݿ��������ȼ���������ͨ������������˿ͻ�������Ŀ���Ч�ʡ�ʹ�ý�����Server�˵Ĵ��������洢��̣�ʹ���ӵ�ҵ������л����Զ����������˲���Ҫ������I��O�����˿ͻ���Ӧ�ó���Ĵ��?���Ҿ��нϸߵ�ִ��Ч�ʡ���ͼ3�еı�student_scoreΪ���崥����������롢ɾ���쳣��ͨ���ڸñ��϶��崥����tl_student_score��������ڱ�student_score�в����course�в����ڵĿγ̵ijɼ�����SQL����Ϊ��create trigger tl_student_score after INSERT on student_score for
each row
declare numrows INTEGER��
begin
����������course ����student_score ON CHILD INSERT
RESTRICT����
������select count(��)into numrows
����������from course
����������where
����������:new.course_number=course.course_number;
����������if(numrows=0)then
����������raise_application_error(��20002,����Ϊ�ÿγ̲����ڣ����Բ��ܲ���䡡)��
����������end if��
����ģ��ȷ���Ժ󣬿��Խ�һ��ȷ����ݵĴ��λ�úʹ洢�ռ�ķ��䣬�����ɶ�����ݿ��SQL���

4.�ᡡ��

�������������Ϣ���ķ�չ��Խ��Խ�����ҵ��ʶ����Ҫ����ݵ�����Դ�����?����Ӧ˲Ϣ������ҵ��������ϵ��ݿ����ϵͳ�ij���ʹ�ÿ��١���Ч���ɿ��ع�����ݳ�Ϊ���ܡ���ϵ��ݿ�ϵͳ��Ч�ر�֤����ݵ�һ���ԡ������ԣ�������ά���Ͳ�ѯ��ݵijɱ��������Ч����ƺ͹�����ݿ⽫ֱ�ӹ�ϵ����Ϣϵͳ����ijɰܡ���ݽ�ģ����ͨ������ݵ��߼�ģ�ͣ�������ҵ��ҵ�������ҵ��������û�������Ч�Ľ���������ݾ����ʵ�ֻ�����ת������ݿ������ģ�͡�ͨ��ʹ����ݽ�ģ���������˲���һ�µġ��ɹ������ݿ⣬�����Լ���ؽ��Ϳ�����ά���ķ��á� ��

���ߵ�λ���¹���(��Ϣ��ҵ�����ӵڶ�ʮ���о����Ͼ�210014)

�����

[1]��ʦ�ӡ���ɺ����ݿ�ϵͳ����(�ڶ���)�ߵȽ��������1991
[2][��]Steven M.Bobrowski��Oracle 7��ͻ������������㼼�������ŵ���ͨ������Ԫ���롡���ӹ�ҵ�����磬1996
[3]����Ԫ����Ϣϵͳ��ģ����(��)����������Ϣ����1999���3�ڣ�1999
 

--

�� ��Դ:�����Ļ����� bbs.cqupt.edu.cn��[FROM: bbs.cqupt.edu.cn]
Technical Details
Message-ID: <4LV7h9$ZiT@bbs.cqupt.edu.cn>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!feed2.newsreader.com!newsreader.com!news.neu.edu.cn!news.uestc.edu.cn!CQUPT

Show Full Headers
Complete Article Headers
X-Google-Thread: 101948,6454d7af1f60dde6,start
X-Google-Attributes: gid101948,public
X-Google-Language: Chinese,GB
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!feed2.newsreader.com!newsreader.com!news.neu.edu.cn!news.uestc.edu.cn!CQUPT
From: SunnyDD@bbs.cqupt.edu.cn-SPAM.no (do everything for you)
Newsgroups: cn.bbs.comp.database
Subject: ��ݽ�ģ����ݿ����
Date: 09 Dec 2005 14:40:22 GMT
Organization: ��������
Message-ID: <4LV7h9$ZiT@bbs.cqupt.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: DataBase/M.1134139161.A0
Lines: 118