1. Trang chủ
  2. » Giáo Dục - Đào Tạo

SLIDE PHÂN TÍCH HỆ THỐNG - MÔ HÌNH DỮ LIỆU VÀ MÔ HÌNH ĐỐI TƯỢNG ppt

44 395 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô Hình Dữ Liệu Và Mô Hình Đối Tượng
Trường học Trường Đại Học Công Nghệ Thông Tin
Thể loại Bài giảng
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 44
Dung lượng 8,85 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Object Model và Data Model Mô hình Object được dùng cho hầu hết các thành phần của ứng dụng như class, attributes, operations, relationships, components, và các cấu trúc khác ngoại trừ

Trang 1

CHƯƠNG

CHƯƠNG 12 12:: Mô

Mô hì hình nh d dư ữ ̃ liliệ ệu u

Trang 2

Nô ộ̣ii dung dung

 So sánh mô hình dữ liệu và mô hình đối tượng

 Quy tắc nghiệp vụ và tính logic trong mô hình dữ liệu

 Trình tự tạo mô hình dữ liệu

◦ Từ việc thiết kế bảng

◦ Từ mô hình đối tượng

 Phát CSDL hay file DDL

Trang 3

Object Model và Data Model

 Mô hình Object được dùng cho hầu hết các

thành phần của ứng dụng như class, attributes, operations, relationships, components, và các

cấu trúc khác (ngoại trừ dữ liệu) liên quan đến tính hiệu quả của bộ nhớ

◦ Đối tượng gì được tạo trong bộ nhớ, chúng giao tiếp nhau như thế nào, mỗi đối tượng có nhiệm vụ gì?

 Data model liên quan nhiều đến tính hiệu quả

Trang 4

So sánh 2 mô hình

Trang 5

Hỗ trợ tính kế thừa

(inheritance)

Không hỗ trợ tính kế thừa

Hai entity classes có Các bảng của entity

Trang 6

So sánh

So sánh 2 2 mô hình mô hình

 Mô hình object hay data được phát triển trước??

◦ Thường được phát triển đồng thời

 Một entity class từ lược đồ class sẽ trở thành các bảng của database CSDL

Ngược lại, một bảng trong database có thể được hỗ trợ bởi hai hay nhiều class trong ứng dụng

Trang 7

Mố ối quan h i quan hệ ệ gi giữ ữa a 2 2 mô hình mô hình

 Nhiều project, chủ yếu là các project cần nâng cấp, bắt đầu với một mô hình data

có sẵn, có thể reverse engineer mô hình này để phát ra một mô hình object

 Nếu có mô hình object nhưng không có

mô hình data, có thể phát tự động mô

hình data từ mô hình này.

Trang 8

Quy t

 Nếu muốn thực thi mô hình data, cần phải áp

dụng các quy tắc nghiệp vụ (business rules) vào

mô hình

 Các quy tắc nghiệp vụ bao gồm: yêu cầu, chính

sách, hướng dẫn cần thiết để hoàn tất giao dịch trong thực tế

 Khi áp dụng các quy tắc nghiệp vụ, phải chỉ ra

được:

◦ các giá trị có thể chấp nhận trong các cột (not null,

unique, default )

◦ Các biểu thức điều kiện (check constraint)

◦ Các hành động cần làm khi cập nhật database (trigger bảo toàn tham chiếu)

Trang 9

Tính logic trong mô hình d

Tính logic trong mô hình dữ ữ liliệ ệu u

 Thực tế của hướng đối tượng chỉ ra rằng nên giữ các business logic trong ứng dụng hơn là trong database

 Chỉ có logic nào liên quan đến chính dữ

liệu mới nên đưa vào database như: các

field, giá trị hợp lệ trong các field, chiều dài field…

Trang 10

Tính logic trong mô hình d

Tính logic trong mô hình dữ ữ liliệ ệu u

 Nhiều quy tắc nghiệp vụ (business rules) có thểđựơc đưa trực tiếp vào database thông qua

constraint Tuy database là nơi thích hợp cho loại logic này, ứng dụng buộc phải thu thập thông tin

từ end user, truyền nó qua lớp business, qua kết nối mạng trước khi dữ liệu được đánh giá Nếu

để logic này ngay tại lớp business thì đôi khi giảm được nghẽn mạng

 Tuy nhiên 1 số phần trong ứng dụng hay các ứng dụng khác, cần dùng cùng 1 constraint thì nên đặt

nó trong database để bảo đảm quy tắc này được

Trang 11

Tính logic trong mô hình d

Tính logic trong mô hình dữ ữ liliệ ệu u

 Một số logic hệ thống có thể đặt ngoài

database trong các stored procedures

Nếu chức năng liên quan đến việc tạo dữ liệu thì nên lập trình nó trong stored

procedure có thể nhanh hơn là phải nạp toàn bộ bản ghi vào bộ nhớ rồi để ứng

dụng xử lý, và lưu trữ kết quà ngược về

lại database

Trang 12

Tính logic trong mô hình d

Tính logic trong mô hình dữ ữ liliệ ệu u

 Tuy nhiên cũng có những bất lợi khi dùng stored procedure để thực thi business

logic:

◦ Chia business logic ngang qua ít nhất là 2 layer (business logic layer và the database layer) Khi business logic thay đổi, có thể cần cập nhật cả 2 layer

◦ Nếu dùng quá nhiều stored procedures

có thể khó di chuyển chúng từ DBMS này sang DBMS khác do cú pháp có thể khác nhau.

Trang 13

Tính logic trong mô hình d

Tính logic trong mô hình dữ ữ liliệ ệu u

 Không dễ quyết định logic nên đặt trong database hay trong ứng dụng.

 Ngay khi quyết định đặt logic trong

database, có thể mô hình logic này bằng cách mô hình hoá stored procedures,

constraints, và triggers

Trang 14

Tạ ạo mô hình d o mô hình dữ ữ liliệ ệu u

 Mô hình Data được xây dựng cả trong

logical view và Component view.

 Trong logical view, có thể tạo schema,

table, domain và các domain packages.

 Trong Component view, mỗi database

được mô hình như 1 component với

stereotype là <<database>>

Trang 15

Trình t

Trình tự ự ttạ ạo mô hình data o mô hình data

1. Tạo database

2. Tạo schema

◦ Logical view\Data Modeler\New\Schema

◦ Gán database cho schema

3. Tạo domain package

 Logical view\Data Modeler\New\ Domain

Package

 Gán hệ DBMS cho domain package

Trang 16

Trình t

Trình tự ự ttạ ạo mô hình data o mô hình data

4. Tạo các domain trong domain package

 Domain package\Data Modeler\New\Domain

5. Tạo lược đồ mô hình data

 Schema\Data Modeler\New\Data Model Diagram

6. Tạo hay thêm bảng vào lược đồ

 Tools\Create\Table, nhấp vào cửa sổ lược đồ

7. Tạo mối quan hệ giữa các bảng

Trang 17

Bướ ướcc 1 1: : Ta Tạ̣o o Database Database

 Rose hỗ trợ 1 số DBMS như sau:

◦ MS SQL server

◦ IBM DB2

◦ Oracle

Trang 18

Bướ ướcc 1 1: : Ta Tạ̣o o Database Database

 Database được mô hình hoá như 1

component Nó cần có tên riêng biệt và

phải được gán vào 1 DBMS xác định

 Để tạo database:

◦ Tại Component view, nhấp phải và chọn lệnh Data Modeler\ New\ Database

◦ Sau khi tạo DB, mở open specification và

chọn DBMS thích hợp

Trang 19

Tablespace ((filegroup filegroup))

 Khi sử dụng DB2, Oracle hay SQL server, có thể thêm tablespace vào DB

 Tablespace là 1 đơn vị lưu trữ logical cho các bảng

◦ Mỗi tablespace chứa 1 hay nhiều container

◦ Mỗi container là 1 thiết bị lưu trữ vật lý chẳng hạn như đĩa cứng Một container được chia

thành nhiều đơn vị nhỏ hơn gọi là extent

Trang 20

 Để tạo tablespace cho database:

Data Modeler\ New \ Tablespace

 Với SQL server, thì tablespace còn được

gọi là filegroup, container còn được gọi là

file

 Mỗi tablespace đều có 1 kích cỡ ban đầu

Ngay khi không gian này được dùng hết,

DBMS có thể tự động tăng thêm kích cỡ

với độ lớn được đặt sẵn nhưng không

thể vượt quá kích cỡ cực đại

Trang 23

 Schema là 1 container cho mô hình data , là nơi mà dựa vào đó Data Modeler sẽ chuyển đổi mô hình data thành mô hình object

 Schema sẽ được ánh xạ thành 1 package của mô hình object dù cho schema có nhiều chức năng

hơn là 1 component thông thừong của UML

 Tất cả tables, fields, triggers, constraints, và các

phần tử mô hình hóa dữ liệu khác đều được chứa trong 1 schema ngoại trừ domain (đuợc lưu trong

Trang 24

 Tất cả các schema đều được lưu trong package

tên Schema nằm trong Logical

 Mỗi schema phải được ánh xạ vào 1 database

trong mô hình Mỗi database có thể chứa trong một hay nhiều schema

 Tạo schema

◦ Logical view\Data Modeler\New\Schema

◦ Gán database cho schema

Trang 25

Data Model Diagram

 Ngay khi schema được tạo, có thể tạo 1 lược

đồ mô hình Data ngay trong nó

 Data Model diagram được dùng để thêm, chỉnh

sửa hay xem các bảng và các phần tử khác bên trong mô hình data Nó có cùng mục đích như

lược đồ Class trong mô hình object

 Mặc dù có thể thêm các phần tử trực tiếp ngay

trong browser, nhưng lược đồ mô hình data là

cách tốt nhât để mô tả 1 cách hình ảnh các

phần tử và mối quan hệ của chúng

Trang 26

 Domain có thể được dùng để thực hịên các quy tắc nghiệp vụ (business rules) như xác định dữliệu các trường theo yêu cầu, vùng giá trị hợp lệhay giá trị mặc định của 1 trường

 Domain là một pattern mà sau khi xây dựng nó

có thể được dùng cho 1 hay nhiều trường khác nhau trong database

 Ví dụ: nếu nhiều bảng trong 1 database có chứa nhiều loại phone khác nhau như HomePhone,

WorkPhone, FaxNumber Ta nên tạo 1 domain

có tên Phone chứa các quy tắc cần thiết cho tất

cả loại phone này như kiểu dữ liệu là Long, giá trị mặc định là 0,…

Trang 27

Các l

Các lợ ợi ích khi s i ích khi sử ử d dụ ụng domain ng domain

 Domain không bắt buộc phải dùng nhưng khi sửdụng domain thì có 2 lợi thế sau:

 Consistency: bảo đảm các quy tắc nghiệp vụ

được áp dụng thống nhất qua nhiều trường

trong database

 Maintenance: vì domain thể hiện các quy tắc

nghiệp vụ, nên khi quy tắc thay đổi chỉ cần thay

đổi domain  các trường được áp dụng domain

Trang 28

 Domain chỉ được dùng trong mô hình data Có thể sử dụng tên domain như 1 loại dữ liệu tùy chọn trong mô hình object hoặc mô hình data

 Domain cho phép ta đặt tên và xác định kiểu

dữ liệu (chiều dài, độ chính xác, tỷ lệ, các ràng buộc về null, giá trị mặc định, unique cho 1 cột)

 Domain không phụ thuộc schema, nên có thể

dùng domain cho nhiều schema trong cùng 1 hệDBMS Mỗi domain được gán vào 1 domain

package

Trang 29

Domain package

 Trong Rose, các domain được lưu trữ bên trong 1 domain package

 Mỗi domain package được gán với 1 hệ

DBMS xác định, tất cả các domain bên trong package chỉ được sử dụng các loại dữ liệu được cung cấp bởi DBMS đó

 Cách tạo:

Logical View\Data Modeler\ New\Domain

Trang 31

Các thành ph

Các thành phầ ần trong schema n trong schema

 Từ mỗi bảng, ta có thể tạo các phần tử sau:

Trang 32

Quan h

Quan hệ ệ gi giữ ữa các b a các bả ảng ng

 Quan hệ trong mô hình dữ liệu tương tự

như quan hệ trong mô hình object

◦ Mô hình object: kết nối các class

◦ Mô hình data kết nối giữa các bảng

 Hai loại kết nối: identifying relationships

và non-identifying relationships

Trang 33

Identifying relationship

 Khoá ngoại là 1 phần của khoá chính của bảng con Được mô hình hoá như 1 quan

hệ kết hợp phức (composite aggregation)

Một bản ghi không thể tồn tại trong

bảng con nếu không được kết nối với 1 bản ghi trong bảng cha

Trang 34

Ví d

Trang 35

Non identifying relationship identifying relationship

 Khoá ngoại vẫn được tạo ra trong bảng con

nhưng khoá ngoại không phải là 1 phần của

khoá chính của bảng con

Việc tồn tại 1 bản ghi trong bảng con sẽ không phụ thuộc vào mối liên kết với bảng cha, mà

chính do multiplicity của quan hệ sẽ kiểm soát

việc tồn tại này

child table In a non-identifying relationship, the

relationship

 cardinality (multiplicity) controls whether a

Trang 36

Ví d

Ví dụ ụ vvề ề Non Non identifying relationship identifying relationship

Trang 37

Phát mô hình object t

 Khả năng phát ra mô hình object từ mô hình

dữ liệu rất hay dùng khi phải làm việc trên 1 project với 1 ứng dụng và database có sẵn Ta

có thể dịch ngược lại database cũ, rồi phát ra

Trang 38

Phát mô hình object t

 Nhấp phải schema, chọn Data

Modeler\Transform to Object Model.

 Nhập vào tên của package chứa mô hình

object Package này sẽ nằm trong Logical view.

 Nhập vào prefix Prefix sẽ được thêm vào tên của mỗi bảng để tạo ra 1 class tương ứng trong mô hình object.

Trang 39

Phát mô hình data t

 Khi một project phát triển, có thể có rất nhiều class loại entity, việc phát mô hình data sẽ cho ta 1 điểm

khởi đầu tốt cho việc thiết kế database

 Khi phát mô hình data, Rose sẽ tìm các class với thuộc tính persistent được đánh dấu là True Chỉ có các class này sẽ được phát thành table

 Một package của cac class trong Logical view sẽ trở

thành 1 schema trong mô hình data Nếu đã có sẵn 1

Trang 40

Trình t

 Tạo một database trong component view

 Nhấp phải tại bất kỳ thuộc tính nào trong class mà ta muốn trở thành khoá chính trong các bảng được phát Nếu ta không chọn khoá chính, Rose sẽ tạo khoá chính bằng cách tạo 1 cột

có tên "<table name>ID.“

 Nhấp phải tại package trong logical view, chọn Data

Modeler\Transform to Data Model.

 Nhập vào tên schema đích

 Đưa vào tên database đích

 Đưa vào prefix sẽ được thêm vào mỗi tên class để tạo tên

bảng tương ứng

 Chọn check box “Create Indexes for Foreign Keys” để tạo tự

Trang 41

Phát database t

Phát database từ ừ mô hình data mô hình data

 Có thể phát database hay DDL script từ

mô hình data Rose cho ta quyền chọn

lựa phát DDL hay chạy DDL để tạo

database.

 Để phát: nhấp phải tại schema, chọn Data Modeler \ Forward Engineer.

Trang 42

Ví d

Ví dụ ụ

Trang 43

Ví d

Ví dụ ụ

Các lệnh DDL tương ứng:

CREATE TABLE T_Customer (

CUSTOMER_ID SMALLINT IDENTITY NOT NULL,

FIRST_NAME VARCHAR ( 15 ) NOT NULL,

LAST_NAME VARCHAR ( 15 ) NOT NULL,

HOME_PHONE NUMERIC ( 10 ) NOT NULL,

ADDRESS VARCHAR ( 20 ) NOT NULL,

CITY VARCHAR ( 20 ) NOT NULL,

STATE CHAR ( 2 ) NOT NULL,

ZIP_CODE NUMERIC ( 5 ) NOT NULL,

CONSTRAINT PK_T_Customer0 PRIMARY KEY NONCLUSTERED

(CUSTOMER_ID),

Trang 44

Dịịch ng ch ngượ ược database c database

 Khi phát ngược database, Rose sẽ tạo ra 1

component database trong Component view và tạo các bảng cùng các phần tử khác trong mọt schema trong Logical view

 Ngay sau khi phát ngược 1 database, có thể

phát tiếp mô hình object hay thực hiện sự đồng

bộ hoá

 Để phát: chọn Tools \ Data Modeler \ Reverse Engineer Có thể phát trực tiếp từ database hay

từ script DDL

Ngày đăng: 13/08/2014, 20:22

HÌNH ẢNH LIÊN QUAN

Hình data từ mô hình này. - SLIDE PHÂN TÍCH HỆ THỐNG - MÔ HÌNH DỮ LIỆU VÀ MÔ HÌNH ĐỐI TƯỢNG ppt
Hình data từ mô hình này (Trang 7)
Bảng tương ứng. - SLIDE PHÂN TÍCH HỆ THỐNG - MÔ HÌNH DỮ LIỆU VÀ MÔ HÌNH ĐỐI TƯỢNG ppt
Bảng t ương ứng (Trang 40)

TỪ KHÓA LIÊN QUAN

w