Minggu, 28 Juli 2019

Data Modeling pada Rekasaya Database

Fasana data Modling
Pemodelan Data, Pemodelan Informasi untuk membuat model informasi organisasi yang menjangkau berbagai tingkat abstraksi, dari yang konseptual hingga logis dan fisik. Model konseptual adalah teknologi yang independen dan dapat digunakan untuk diskusi dengan pelaku bisnis dan pakar domain, memungkinkan dari konsep dasar dalam domain untuk diwakili, dibahas, dan disepakati. Model logis menguraikan model konseptual, menambahkan lebih detail , memungkinkan Analis Informasi untuk mendiskusikan dan menyetujui struktur logis. Model fisik menerapkan data spesifik teknologi untuk model dan memungkinkan para pakar untuk mendiskusikan dan menyetujui keputusan teknologi dalam persiapan untuk generasi ke lingkungan target, seperti sistem manajemen basis data.

DATA MODELS
Data model dapat dibagi menjadi 3 type antara lain : Model Data Konseptual, Model Data Logis dan Model Data Fisik. 

Model Data Konseptual : Model data konseptual atau disebut juga model Domain, menetapkan konsep dasar dan semantik dari domain tertentu dan membantu untuk mengomunikasikannya kepada khalayak luas pemangku kepentingan dan juga berfungsi kata pengantar, tahapan analisa dan bisa dibuat sebagai arseltur ERD atau bisa sebagi Class UML.
Model data konseptual adalah bentuk model data yang paling abstrak. Sangat membantu untuk mengkomunikasikan ide-ide kepada berbagai pemangku kepentingan karena kesederhanaannya. Oleh karena itu, informasi khusus platform, seperti tipe data, indeks, dan kunci, dihilangkan dari model data konseptual. Detail implementasi lainnya, seperti prosedur dan definisi antarmuka, juga dikecualikan.
Contoh model data konseptual:
Fasana Contoh data model konsep
Menggunakan notasi Entity-Relationship (ER), Untuk mewakili konsep data 'Pelanggan' dan 'Alamat Pelanggan' sebagai Entitas dengan hubungan 1-ke-banyak.  Dapat mewakili informasi semantik yang persis sama dengan menggunakan Kelas dan UML Asosiasi :

Fasana Classes UML

Sebaiknya anda menggunakan notasi UML atau ER untuk mewakili konsep data dalam proyek  yang Anda bagun tergantung pada pengalaman dan preferensi pemangku kepentingan yang terlibat. Struktur terperinci dari konsep data yang diilustrasikan dalam model data konseptual kemudian didefinisikan oleh model data logis.

Model Data Logis: Model data logis menambah rincian lebih lanjut untuk elemen model konseptual dan memperbaiki struktur domain; dapat didefinisikan menggunakan model Entity-Relationship (ER) atau Class UML. Manfaat model data Logical adalah memberikan landasan yang menjadi dasar model Fisik dan implementasi basis data. Pemodelan hubungan entitas adalah metode pemodelan basis data yang abstrak dan konseptual, yang digunakan untuk menghasilkan skema atau model data semantik, misalnya, basis data relasional dan persyaratannya, divisualisasikan dalam Entity-Relationship Diagram (ERDs). ERD membantu untuk dalam membangun model data konseptual hingga menghasilkan Data Definition Language (DDL) untuk target  DBMS.

Model data logis membantu mendefinisikan struktur detail elemen data dalam suatu sistem dan hubungan antar elemen data. bisa memperbaiki elemen data yang diperkenalkan oleh model data konseptual dan membentuk dasar dari model data fisik. model data logis biasanya direpresentasikan menggunakan notasi class UML .
Fasana_Data Modiel_Logic

Dari contoh diatas bahwa elemen data 'Pelanggan' dan 'Alamat Pelanggan' berisi atribut UML; nama dan tipe data umum untuk tetap independen terhadap platform. Tipe data platform-spesifik dan meta-data lain yang terkait dengan implementasi DBMS spesifik ditentukan oleh model data Fisik.


Model Data Fisik: Model data fisik  untuk memvisualisasikan struktur basis data dan secara otomatis mendapatkan skema basis data yang sesuai. Profil ini memberikan ekstensi berguna dari standar UML yang memetakan konsep basis data Tabel dan hubungan ke konsep Kelas dan Asosiasi UML; Anda juga dapat memodelkan kolom basis data, kunci, batasan, indeks, pemicu, integritas referensial dan fitur basis data relasional lainnya.

Model Data Fisik secara visual mewakili struktur data yang diimplementasikan oleh skema basis data relasional. Selain memberikan abstraksi visual dari struktur basis data, manfaat penting dari mendefinisikan Model Data Fisik adalah bahwa dapat secara otomatis menurunkan skema basis data dari model tersebut. Ini dimungkinkan karena kekayaan meta-data yang ditangkap oleh Model Data Fisik dan pemetaannya yang dekat dengan aspek skema basis data, seperti Tabel basis data, kolom, kunci Primer dan kunci Asing.
Contoh 1:
Fasana_Model_Data_Fisik

Model contoh didefinisikan menggunakan Profil UML Perusahaan Arsitek untuk Pemodelan Data; hubungan antara Tabel menggunakan notasi Rekayasa Informasi.
Toolbox yang digunakan : Table, View, Procedure, Sequence, Function, Association, Database connection, Sql Query.
Contoh 2 :



Jika kita impelementasikan kedalam database create dan altar (DLL)
DBMS : Oracle
/* Create Tables */

CREATE TABLE  "Account"
(    "billingAddress" VARCHAR2(50) DEFAULT 'Delivery Address' NULL,
    "closed" NUMBER(1) NULL,
    "deliveryAddress" VARCHAR2(50) NULL,
    "emailAddress" VARCHAR2(50) NULL,
    "name" VARCHAR2(50) NULL,
    "accountID" NUMBER NOT NULL,
    "history" NUMBER NULL );

CREATE TABLE  "BookOrder"
(    "orderDate" DATE DEFAULT sysdate NULL,
    "deliveryInstructions" VARCHAR2(50) NULL,
    "lineItemID" NUMBER NULL,
    "orderNumber" NUMBER NULL,
    "orderStatusID" NUMBER NULL,
    "orderID" NUMBER NOT NULL,
    "account" NUMBER NULL );

CREATE TABLE  "LineItem"
(    "quantity" NUMBER DEFAULT 1 NULL,
    "lineItemID" NUMBER NOT NULL,
    "stockItemID" NUMBER NULL,
    "shoppingBasketID" NUMBER NULL,
    "orderID" NUMBER NULL,
    "transactionID" NUMBER NULL);

CREATE TABLE  "ShoppingBasket"
(    "lineItemID" NUMBER NULL,
    "shoppingBasketNumber" VARCHAR2(50) NULL,
    "shoppingBasketID" NUMBER NOT NULL,
    "accountID" NUMBER NULL );

CREATE TABLE  "StockItem"
(    "Author" VARCHAR2(50) NULL,
    "catalogNumber" VARCHAR2(50) NULL,
    "costPrice" NUMBER(8,2) NULL,
    "listPrice" NUMBER(8,2) NULL,
    "title" VARCHAR2(50) NULL,
    "stockItemID" NUMBER NOT NULL,
    "lineItemID" NUMBER NULL );

CREATE TABLE  "Transaction"
(    "transactionDate" DATE NULL,
    "orderNumber" VARCHAR2(50) NULL,
    "transactionID" NUMBER NOT NULL);

/* Create Primary Keys, Indexes, Uniques, Checks, Triggers */

ALTER TABLE  "Account"
 ADD CONSTRAINT "PK_Account"
    PRIMARY KEY ("accountID")
 USING INDEX ;

ALTER TABLE  "BookOrder"
 ADD CONSTRAINT "PK_Order"
    PRIMARY KEY ("orderID")
 USING INDEX ;


ALTER TABLE  "LineItem"
 ADD CONSTRAINT "PK_LineItem"
    PRIMARY KEY ("lineItemID")
 USING INDEX;

ALTER TABLE  "LineItem"
 ADD CONSTRAINT "CK_quantity" CHECK (quantity > 0);

ALTER TABLE  "ShoppingBasket"
 ADD CONSTRAINT "PK_ShoppingBasket"
    PRIMARY KEY ("shoppingBasketID")
 USING INDEX;

ALTER TABLE  "StockItem"
 ADD CONSTRAINT "PK_StockItem"
    PRIMARY KEY ("stockItemID")
 USING INDEX;

CREATE INDEX "IX_StockItem_CatalogNumber"  
 ON  "StockItem" ("catalogNumber");

ALTER TABLE  "Transaction"
 ADD CONSTRAINT "PK_Transaction"
    PRIMARY KEY ("transactionID")
 USING INDEX;

/* Create Foreign Key Constraints */

ALTER TABLE  "Account"
 ADD CONSTRAINT "FK_history"
    FOREIGN KEY ("history") REFERENCES   ();

ALTER TABLE  "BookOrder"
 ADD CONSTRAINT "FK_account"
    FOREIGN KEY ("account") REFERENCES  "Account" ("accountID");

ALTER TABLE  "LineItem"
 ADD CONSTRAINT "FK_LineItem_ShoppingBasket"
    FOREIGN KEY ("shoppingBasketID") REFERENCES  "ShoppingBasket" ("shoppingBasketID");

ALTER TABLE  "LineItem"
 ADD CONSTRAINT "FK_LineItem_BookOrder"
    FOREIGN KEY ("orderID") REFERENCES  "BookOrder" ("orderID");

ALTER TABLE  "LineItem"
 ADD CONSTRAINT "FK_LineItem_Transaction"
    FOREIGN KEY ("transactionID") REFERENCES   ();

ALTER TABLE  "ShoppingBasket"
 ADD CONSTRAINT "FK_ShoppingBasket_Account"
    FOREIGN KEY ("accountID") REFERENCES  "Account" ("accountID");

ALTER TABLE  "StockItem"  ADD CONSTRAINT "FK_StockItem_LineItem"
    FOREIGN KEY ("lineItemID") REFERENCES   ();



Entity Relationship Diagram (ERD)
Entitas Relatioship Model (ERM) adalah representasi data abstrak dan konseptual. Pemodelan entitas-hubungan adalah metode pemodelan basis data, yang digunakan untuk menghasilkan jenis skema konseptual atau model data semantik dari suatu sistem, sering kali merupakan basis data relasional, dan persyaratannya secara top-down. Diagram yang dibuat oleh proses ini disebut Entity-Relationship Diagram, ER Diagram, atau ERD (Wikiepedia).
Entity Relationship Diagram, ERD Chen : entitas (tabel) direpresentasikan sebagai persegi panjang, atribut (kolom) direpresentasikan sebagai elips (bergabung dengan entitas mereka) dan hubungan antara entitas direpresentasikan sebagai konektor berbentuk berlian.
Contoh :
 
 FASANA ERD


Notasi pada ERD :
  • Entity adalah objek atau konsep yang dapat diidentifikasi secara unik; properti Multiplicity dalam definisi SourceRole dan TargetRole untuk konektor Relationship dapat digunakan untuk menentukan kardinalitas Entitas yang berpartisipasi dalam hubungan ini
  • Atribut adalah properti entitas atau tipe hubungan
  • N-ary Association mewakili hubungan unary (many-to-many recursive) atau hubungan ternary dan juga dapat digunakan untuk mewakili hubungan yang memiliki atribut di antara entitas; elemen N-ary Association harus selalu berada di ujung target konektor
  • Konektor adalah konektor antara Entitas dan Atribut, dan antara dua Atribut
  • Relationship adalah konektor berbentuk berlian, mewakili hubungan yang bermakna antara entitas
  • Disjoint dan Overlapping mewakili hubungan antara Entitas super-kelas dan Entitas sub-kelas

oleh fsakti FASANA IT | Tutorial Computer Updated at : 17.41

 
Ke bawah Ke ATAS