2. LANDASAN TEORI

2.1 Data modeling adalah sebuah metode yang digunakan untuk mendefinisikan dan menganalisa data requirements yang diperlukan untuk membantu proses bisinis dari sebuah perusahaan. Data requirements ini tersimpan dalam conceptual model yang diimplementasikan dalam bentuk logical . Data modeling tidak hanya mendefinisikan data elements, tapi juga mendefinisikan struktur dan relationship di antaranya. Data modeling merupakan cara yang paling tepat untuk menggambarkan kebutuhan dari sebuah sistem informasi (Simsion & Witt, 2005). Data modeling digunakan untuk memodelkan data dengan tujuan untuk mendapatkan data yang konsisten sehingga data tersebut dapat digunakan sebagai aset bagi perusahaan. Data yang ada dalam suatu perusahaan merupakan salah satu aset yang penting bagi perusahaan. Data yang tidak akurat akan mengurangi nilai dari aset perusahaan serta membutuhkan biaya yang sangat besar untuk memperbaikinya. Selain itu data modeling juga digunakan untuk mendesain database dan mengintegrasikan sistem informasi yang ada dalam perusahaan.

2.1.1 Conceptual, Logical dan Physical Schema Data model yang dihasilkan selama proses mengolah business requirements menjadi database specification yang lengkap dapat dilihat pada Gambar 2.1.

7 Universitas Kristen Petra

Gambar 2.1 Proses dan Hasil Desain Database Sumber : Simision & Witt (2005, p.30)

Data model yang dihasilkan berupa : a) Conceptual schema • Mendeskripsikan mengenai struktur data dilihat dari sudut pandang area perusahaan, direpresentasikan dalam bentuk entity serta relationship di antaranya. b) Logical schema • Mendeskripsikan mengenai bagaimana data disimpan, hal ini berhubungan dengan penentuan struktur dari tabel dan kolom. c) Physical schema • Mendeskripsikan mengenai penyimpanan data secara fisik. Hal ini berhubungan dengan bagaimana data disimpan dalam CPU, partisi dan lain sebagainya.

2.1.2 Data Modeling Process Seperti terlihat pada Gambar 2.2 bahwa proses data modeling akan menghasilkan database (database generation), dimana hal ini melengkapi

8 Universitas Kristen Petra business process modeling yang menghasilkan aplikasi untuk mendukung proses bisnis suatu perusahaan.

Gambar 2.2. Data Modeling dalam Konteks Business Process Integration Sumber : Smith & Sarfaty (1993, p.9)

Proses desain database sebenarnya merupakan proses untuk menghasilkan data model yang lebih detil dari sebuah database. Logical model berisi tentang semua logical design yang diperlukan untuk membuat desain data definition language (DDL) yang digunakan untuk membuat sebuah database.

2.1.3 Metode dalam Data Modeling Ada 2 metode yang digunakan dalam membuat data model yaitu: a) Bottom up • Bottom up merupakan metode yang digunakan untuk memodelkan data dari struktur data yang sudah ada. • Metode ini merupakan hasil dari proses database reverse engineering. b) Top down • Top down merupakan metode yang digunakan untuk memodelkan data dari informasi - informasi mengenai data tersebut. • Metode ini adalah hasil dari proses database forward engineering.

9 Universitas Kristen Petra 2.2 Entity Relational Diagram Entity Relational Diagram merupakan diagram yang menggambarkan ER model (Elmasri & Navathe, 2007). ER model biasanya digunakan untuk merancang conceptual design dari sebuah aplikasi database. ER model mendeskripsikan data sebagai entity, relationship dan atrributes.

2.2.1 Entity Sebuah entitiy merupakan sebuah objek dalam dunia nyata dengan eksistensi yang bersifat independen. Entity dapat berupa objek dengan physical existence, seperti orang, mobil, rumah atau pegawai. Selain itu entity juga dapat berupa objek dengan conceptual existence, seperti sebuah perusahaan, pekerjaan atau mata kuliah (Elmasri & Navathe, 2007).

2.2.2 Attributes Tiap entity mempunyai beberapa attributes. Attributes merupakan properties yang mendeskripsikan mengenai entity itu sendiri. Tiap attributes yang ada akan memiliki sebuah nilai. Contoh : Entity : pegawai Attributes : nama, alamat, umur. Misal entity pegawai adalah e1. nama : Alibaba e1 alamat : siwalankerto 5 umur : 44 Attributes terbagi dalam : a) Composite Attributes dan Simple Attributes Composite Attributes merupakan atribut yang dapat dipecah lagi menjadi bagian yang lebih kecil lagi. Sedangkan Simple Attributes sudah tidak dapat dipecah lagi menjadi bagian yang lebih kecil. Contoh composite attributes adalah nama, atribut nama dapat dipecah lagi menjadi nama depan dan nama belakang. Contoh simple attributes adalah jenis kelamin, atribut ini tidak dapat dipecah lagi menjadi bagian yang lebih kecil.

10 Universitas Kristen Petra b) Single-valued Attributes dan Multivalued Attributes Kebanyakan atribut yang ada merupakan single-valued attributes, artinya adalah tiap atribut hanya mempunyai 1 nilai saja. Tapi ada beberapa atribut yang merupakan multivalued attributes, yaitu dalam 1 atribut punya nilai lebih dari 1. Misal entity mobil punya atribut merek dan warna. Merek merupakan single-valued attributes, karena pada 1 mobil tentunya hanya punya 1 merek. Warna merupakan multivalued attributes karena pada 1 mobil dapat terdiri dari lebih dari 1 warna. c) Stored Attributes dan Derived Attributes Dalam beberapa hal, 2 atribut dapat saja saling berhubungan. Contoh atribut usia dan tanggal lahir. Atribut usia merupakan derived attributes karena usia dapat dihitung dari tanggal lahir seseorang. Sedangkan atribut tanggal lahir merupakan stored attributes. Sebuah atribut dapat juga mempunyai NULL values atau tidak mempunyai nilai. Contoh atribut gelar, seseorang dapat saja tidak mempunyai gelar.

2.2.3 Key Key merupakan atribut unik yang melekat pada suatu entity. Atribut ini selalu mempunyai nilai yang berbeda pada tiap individual entity dalam entity set (Elmasri & Navathe, 2007). Contoh dalam entity orang, maka keynya adalah nomor KTP.

2.2.4 Relationship Relationship merupakan hubungan antara beberapa entity. Dalam tiap relationship terdapat cardinality dan participation yang menjelaskan mengenai jenis relationship tersebut.

2.2.4.1 Cardinality Cardinality merupakan constaint yang menunjukkan jumlah maksimum entity yang boleh ada dalam relationship (Elmasri & Navathe, 2007).

11 Universitas Kristen Petra Cardinality terdiri dari 3 macam, yaitu : a) Relasi one to one Relasi one to one adalah relasi dimana tiap elemen dari entity A berelasi hanya pada satu elemen dari entity B. b) Relasi one to many Relasi one to many adalah relasi dimana tiap elemen dari entity A dapat berelasi dengan banyak elemen dari entity B. c) Relasi many to many Relasi many to many adalah relasi dimana tiap elemen dari entity A dapat berelasi dengan banyak elemen dari entity B dan juga sebaliknya.

2.2.4.2 Participation Participation merupakan constraint yang menunjukkan bahwa keberadaan dari suatu entity terhadap entity lain saling bergantung melalui relationship di antara keduanya (Elmasri & Navathe, 2007). Participation terdiri dari 2 macam yaitu : a) Total participation Dalam total participation, tiap entity mempunyai minimal 1 relasi. b) Partial participation Dalam partial participation, boleh ada entity yang tidak mempunyai relasi.

2.2.5 Weak Entity Weak entity adalah entity yang tidak mempunyai primary key sendiri. Tiap weak entity harus berelasi dengan suatu entity, biasanya disebut strong entity. Primary key dari weak entity adalah discriminatornya dan primary key dari strong entity. Weak entity digunakan apabila pada entity itu dirasa tidak perlu primary key (Elmasri & Navathe, 2007).

2.2.6 Subclass, Superclass, Specialization, dan Generalization Seperti yang telah dijelaskan sebelumnya bahwa entity digunakan untuk menggambarkan objek dalam dunia nyata. Dalam beberapa kasus, entity mempunyai beberapa kelompok dalam entity tersebut yang perlu digambarkan

12 Universitas Kristen Petra secara karena keberadaannya cukup penting dalam database. Sebagai contoh entity PEGAWAI dapat dikelompokkan lebih lanjut ke dalam SEKRETARIS, MANAJER, TEKNISI dan lain-lain. Dalam hal ini, kelompok-kelompok kecil seperti SEKRETARIS, MANAJER, dan TEKNISI juga merupakan PEGAWAI. Kelompok-kelompok kecil ini disebut dengan subclass dari entity PEGAWAI, sedangkan entity PEGAWAI sendiri merupakan superclass dari tiap subclass tersebut (Elmasri & Navathe, 2007). Specialization adalah proses mendefinisikan tiap subclass dari superclass yang ada, sedangkan generalization adalah proses mendefinisikan superclass dari subclass yang ada. Konstrain yang ada dalam specialization ada 2 yaitu : a) Distjoiness constraint Distjoiness constraint mendefinisikan bahwa subclass dari specialization haruslah disjoint, yang berarti sebuah entity bisa merupakan member dari maksimal satu subclass. Selain itu, sebuah entity bisa juga mengalami overlap, yang berarti satu entity dapat merupakan member lebih dari satu subclass. b) Completeness constraint Dalam completeness constraint terdapat total specialization dan partial specialization. Pada total specialization, tiap entity pada superclass haruslah merupakan member dari minimal satu subclass, sedangkan pada partial specialization, sebuah entity bisa saja bukan merupakan member dari subclass manapun.

2.3 Notasi Chen Ada banyak notasi yang dapat digunakan untuk menggambarkan sebuah ERD, antara lain notasi Chen, Crow’s Foot, UML dan lain sebagainya. Namun notasi yang sering digunakan dalam perkuliahan adalah notasi Chen. Simbol- simbol yang digunakan oleh notasi Chen dapat dilihat pada Gambar 2.3.

13 Universitas Kristen Petra

= entity

= weak entity

= relasi

= relasi weak entity terhadap entitynya

= atribut

= key attribute

= multi-valued attribute

= composite attribute

E E = total participation E2 terhadap R

E E = cardinality 1 : M untuk E1 : E2

= disjoint dengan partial specialization

= overlapping dengan total specialization

Gambar 2.3 Notasi Chen Sumber : Elmasri & Navathe (2007, p.80)

14 Universitas Kristen Petra 2.4 Mapping Mapping adalah proses untuk mengubah ERD menjadi tabel-tabel (Hoffer et al.,2009). Berikut adalah langkah-langkah untuk melakukan mapping: 1. Regular entity • Tulis semua regular entity beserta atributnya. • Pilih salah satu key atribut untuk dijadikan primary key a) Composite attribute • Masukkan semua simple attribute dari composite attribute menjadi atribut dari entity composite attribute tersebut b) Multi-valued attribute • Buat tabel baru dari atribut tersebut • Jadikan nama atribut tersebut menjadi primary key pada tabel yang baru • Jadikan primary key dari entiti atribut multi-valued tersebut menjadi primary key pada tabel baru 2. Weak entity • Masukkan primary key strong entity ke weak entity. • Jadikan primary key tersebut dan discriminatornya menjadi primary key weak entity tersebut. 3. Binary relationship a) Relasi 1:1 • Pilih entiti yang mempunyai total participation • Masukkan atribut yang ada di relasi ke entiti tersebut • Masukkan primary key dari entiti yang lain sebagai foreign key pada entiti tersebut • Apabila relasi tersebut tidak mempunyai total participation atau keduanya adalah total participation, maka entiti yang dipilih adalah bebas b) Relasi 1:M • Pilih entiti yang berada pada sisi many • Masukkan atribut yang ada di relasi ke entiti tersebut

15 Universitas Kristen Petra • Masukkan primary key dari entiti yang lain sebagai foreign key pada entiti tersebut c) Relasi M:N • Buat tabel baru dari relasi tersebut • Masukkan atribut yang ada di relasi ke tabel tersebut • Masukkan primary key dari kedua entiti sebagai primary key pada tabel yang baru tersebut 4. Unary relationship a) Relasi 1:M • Proses entity yang memiliki unary relationship • Masukkan atribut yang ada di relasi ke entiti tersebut • Tambahkan recursive foreign key yang menunjuk ke primary key entiti tersebut b) Relasi M:N • Proses entity yang memiliki unary relationship • Buat tabel baru dari relasi tersebut • Masukkan atribut yang ada di relasi ke tabel tersebut • Masukkan primary key dari entiti dan buat key dari relasi sebagai primary key pada tabel yang baru, kedua primary key dari tabel baru merujuk pada primary key entiti unary relationship 5. Ternary relationship dan n-ary relationship • Proses entiti-entiti yang ada dalam n-ary relationship • Buat 1 tabel baru dari relasi tersebut • Masukkan atribut yang ada di relasi ke tabel baru • Masukkan primary key dari ketiga entiti sebagai foreign key pada tabel baru • Primary key dari tabel baru adalah semua foreign key dari entiti yang ada dalam n-ary relationship • Apabila ada salah satu entiti yang memiliki cardinality 1, maka foreign key dari entiti yang bersangkutan tidak perlu dijadikan primary key pada tabel baru

16 Universitas Kristen Petra 6. Specialization / generalization • Buat tabel dari supertype dan masing-masing subtype dari supertype • Masukkan semua atribut yang selalu ada pada semua subtype pada tabel supertype, termasuk primary key pada supertype tersebut • Masukkan atribut yang membedakan tiap subtype ke dalam tabel subtype masing-masing • Jadikan primary key dari supertype sebagai primary key pada subtype tersebut • Tambahkan 1 atribut pada supertype untuk membedakan subtype yang ada

2.5 Tipe Data pada Oracle Tipe data pada Oracle dapat dilihat pada Tabel 2.1. Tabel 2.1 Tipe Data pada Oracle

Tipe Data Keterangan varchar2 tipe data text yang mempunyai panjang tidak tetap (variable length) dengan besar maksimum 4000 bytes nvarchar2 tipe data text yang mempunyai panjang tidak tetap (variable length) dengan besar maksimum 4000 bytes Char tipe data text dengan panjang tetap (fixed-length) dengan besar maksimum 2000 bytes Nchar tipe data text dengan panjang tetap (fixed-length) dengan besar maksimum 2000 bytes Number tipe data angka dengan jumlah digit yang ditentukan pls_integer tipe data signed integer binary_integer tipe data signed integer Date tipe data tanggal dari 1 Januari 4712 sampai 31 Desember 9999 Timestamp tipe data waktu dan tanggal timestamp with local tipe data waktu dan tanggal dengan time zone timezone

17 Universitas Kristen Petra Tabel 2.1 Tipe Data pada Oracle (Sambungan) row id Hexadecimal string yang menyimpan alamat unik baris dalam tabelnya urow id Hexadecimal string yang menyimpan logical address baris Clob tipe data untuk menyimpan Character Large Objects Nclob tipe data untuk menyimpan National Character Large Objects Blob tipe data untuk menyimpan Binary Large Objects XML type XML data Sumber : Oracle / PL SQL Data Types (2010)

2.6 Tipe Data pada SQL Server Tipe data pada SQL Server dapat dilihat pada Tabel 2.2. Tabel 2.2 Tipe Data pada SQL Server

Tipe Data Keterangan Bigint Data integer dengan nilai dari -2^63 sampai 2^63-1 Int Data integer dengan nilai dari -2^31 sampai 2^31-1 Smallint Data integer dengan nilai dari -2^15 sampai 2^15-1 Tinyint Data integer dengan nilai dari 0 sampai 255 Bit Data numerik yang nilainya 1 atau 0 Decimal Data numerik dengan nilai dari -10^38 +1 sampai 10^38 -1 Money Monetary data dengan nilai dari -2^63 sampai 2^63–1 Monetary data dengan nilai dari -214,748.3648 sampai Smallmoney +214,748.3647 Data numerik dengan nilai dari -1.79E + 308 sampai 1.79E + Float 308 Real Data numerik dengan nilai dari -3.40E + 38 sampai 3.40E + 38 Data berupa tanggal dan waktu dari 1 Januari 1753 sampai 31 Datetime Desember 9999

18 Universitas Kristen Petra Tabel 2.2 Tipe Data pada SQL Server (Sambungan) Data berupa tanggal dan waktu dari 1 Januari 1900 sampai 6 Smalldatetime Juni 2079 Data berupa karakter yang panjangnya tetap(fixed length) Char dengan nilai maksimum 8000 karakter Data berupa karakter yang panjangnya tidak tetap(variable Varchar length) dengan jumlah maksimum 8000 karakter Data berupa karakter yang panjangnya tidak tetap(variable Text length) dengan jumlah maksimum 2^31 - 1 karakter Unicode data yang panjangnya tetap(fixed length) dengan Nchar jumlah maksimum 4000 karakter Unicode data yang panjangnya tidak tetap(variable length) Nvarchar dengan jumlah maksimum 4000 karakter Unicode data yang panjangnya tidak tetap(variable length) Ntext dengan jumlah maksimum 2^30-1 karakter Binary data yang besarnya tetap(fixed length) dengan besar Binary maksimum 8000 bytes Binary data yang besarnya tidak tetap(variable length) dengan Varbinary besar maksimum 8000 bytes Binary data yang besarnya tetap(fixed length) dengan nilai Image maksimum 2^31 - 1 bytes Cursor Tipe data untuk menyimpan referensi cursor Tipe data berupa unique number yang akan berubah tiap kali Timestamp dilakukan update pada rows tersebut. Uniqueidentifier Unique identifier Sumber : SQL Server Data Types (2010)

2.7 Tipe Data pada MySQL Tipe data pada MySQL dapat dilihat pada Tabel 2.3.

19 Universitas Kristen Petra Tabel 2.3 Tipe Data pada MySQL

Tipe Data Keterangan Char tipe data text dengan panjang tetap (fixed length) dengan panjang maksimal 255 varchar tipe data text dengan panjang tidak tetap (variable length) dengan panjang maksimal 255 Tinytext tipe data string dengan panjang maksimal 255 karakter Text tipe data string dengan panjang maksimal 65535 karakter Blob untuk Binary Large Objects dengan besar maksimal 65535 bytes Mediumtext tipe data string dengan panjang maksimal 16777215 karakter Mediumblob untuk Binary Large Objects dengan besar maksimal 16777215 bytes Longtext tipe data string dengan panjang maksimal 4294967295 karakter Longblob untuk Binary Large Objects dengan besar maksimal 4294967295 bytes Tinyint tipe data numerik dengan nilai dari -2^7 sampai 2^7-1 atau 0 sampai 2^8 UNSIGNED. Smallint tipe data numerik dengan nilai dari -2^15 sampai 2^15-1 atau 0 sampai 2^16 UNSIGNED. Mediumint tipe data numerik dengan nilai dari -2^23 sampai 2^23-1 atau 0 sampai 2^24 UNSIGNED. Int tipe data numerik dengan nilai dari -2^31 sampai 2^31-1 atau 0 sampai 2^32 UNSIGNED. Bigint tipe data numerik dengan nilai dari -2^63 sampai 2^63-1 atau 0 sampai 2^64 UNSIGNED. Float tipe data numerik dengan floating decimal point Double tipe data numerik dengan floating decimal point, dapat menampung data numerik lebih besar daripada float

20 Universitas Kristen Petra Tabel 2.3 Tipe Data pada MySQL (Sambungan) Decimal tipe data numerik dengan fixed decimal point Date tipe data tanggal dengan format YYYY-MM-DD Datetime tipe data waktu dan tanggal dengan format YYYY-MM-DD HH:MM:SS Timestamp tipe data waktu dan tanggal dengan format YYYYMMDDHHMMSS Time tipe data waktu dengan format HH:MM:SS Enum Tipe data dimana tiap kolom dapat mempunyai 1 nilai dari nilai yang ada Set Mirip dengan enum tapi tiap kolom dapat mempunyai lebih dari 1 nilai Sumber : MySQL Data Type (2010)

2.8 Data Dictionary Data dictionary pada Oracle merupakan tabel yang memuat semua struktur tabel beserta procedural code (trigger, PL/SQL procedure) yang dibuat oleh user (Andersson, n.d.). Data dictionary berisi : a) USER_TABLES • Tabel ini berisi infromasi mengenai tiap tabel yang ada dalam database yang dimiliki user b) USER_TAB_COMMENTS • Tabel ini berisi comments yang ada pada table dan view c) USER_TAB_COLUMNS • Tabel ini berisi nama, tipe data, default values dan lain sebagainya dari tiap kolom pada tiap tabel d) USER_COL_COMMENTS • Tabel ini berisi comments pada kolom e) USER_CONSTRAINTS • Tabel ini berisi semua constraints seperti primary key, foreign key, not null dan lain sebagainya

21 Universitas Kristen Petra f) USER_CONS_COLUMNS • Tabel ini memetakan constraints pada kolom g) USER_INDEXES • Tabel ini berisi index-index yang ada pada kolom h) USER_IND_COLUMNS • Tabel ini memetakan indexs pada kolom i) USER_VIEWS • Tabel ini berisi semua views beserta kode pembuatannya j) USER_SYNONYMS • Tabel ini berisi synonyms dan nama asli tabel k) USER_SEQUENCES • Tabel ini berisi mengenai semua sequence l) USER_TRIGGERS • Tabel ini berisi nama trigger yang ada dan kode pembuatannya m) USER_SOURCE • Tabel ini berisi source code PL/SQL objects termasuk function, procedure, packages dan package bodies.

2.9 Information Schema 2.9.1 Information Schema pada MySQL Information schema pada MySQL merupakan sebuah database yang memuat semua informasi mengenai semua database yang ada dalam MySQL. Information schema hanya dapat dibaca saja, tidak dapat dilakukan insert, update maupun delete terhadap tabel-tabel di dalamnya (MySQL Reference Manual, 1997, chap.19). Tabel-tabel yang ada dalam information schema antara lain : a) INFORMATION_SCHEMA SCHEMATA • Tabel ini berisi mengenai informasi dari database b) INFORMATION_SCHEMA TABLES • Tabel ini berisi mengenai tabel-tabel yang ada dalam database c) INFORMATION_SCHEMA COLUMNS

22 Universitas Kristen Petra • Tabel ini berisi informasi mengenai kolom-kolom dalam tabel, meliputi nama kolom, tipe data, column_comment dan lain sebagainya d) INFORMATION_SCHEMA STATISTICS • Tabel ini berisi mengenai index pada tabel e) INFORMATION_SCHEMA USER_PRIVILEGES • Tabel ini berisi informasi mengenai global privileges f) INFORMATION_SCHEMA SCHEMA_PRIVILEGES • Tabel ini berisi informasi mengenai schema privileges g) INFORMATION_SCHEMA TABLE_PRIVILEGES • Tabel ini berisi informasi mengenai table privileges h) INFORMATION_SCHEMA COLUMN_PRIVILEGES • Tabel ini berisi informasi mengenai column privileges i) INFORMATION_SCHEMA CHARACTER_SETS • Tabel ini berisi informasi mengenai character set yang ada j) INFORMATION_SCHEMA COLLATIONS • Tabel ini berisi informasi mengenai collation pada character set k) COLLATION_CHARACTER_SET_ APPLICABILITY • Tabel ini berisi informasi mengenai character set apa yang dapat diaplikasikan untuk apa l) INFORMATION_SCHEMA TABLE_CONSTRAINTS • Tabel ini berisi informasi mengenai tabel-tabel yang memiliki constraint m) INFORMATION_SCHEMA KEY_COLUMN_USAGE • Tabel ini berisi informasi mengenai key columns yang memiliki constraint n) INFORMATION_SCHEMA VIEW • Tabel ini berisi mengenai view yang ada dalam database o) INFORMATION_SCHEMA TRIGGERS • Tabel ini berisi mengenai trigger yang ada dalam database

2.9.2 Information Schema pada SQL Server Information schema pada SQL Server merupakan kumpulan view yang berisi mengenai objek-objek yang ada dalam database (SQL Server Information_Schema Views, 2006).

23 Universitas Kristen Petra Berikut adalah view – view yang tersedia : a) INFORMATION_SCHEMA.CHECK CONSTRAINTS • Berisi informasi mengenai tiap check constraints pada database yang dipilih b) INFORMATION_SCHEMA.COLUMN_DOMAIN_USAGE • Berisi informasi mengenai tiap kolom dalam database yang mempunyai tipe data user-defined c) INFORMATION_SCHEMA.COLUMN_PRIVILEGES • Berisi informasi mengenai tiap kolom pada database yang dapat diakses oleh user d) INFORMATION_SCHEMA.COLUMNS • Berisi informasi mengenai tiap kolom yang ada dalam database yang dipilih e) INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE • Berisi informasi mengenai tiap kolom yang digunakan sebagai constraint pada database yang dipilih f) INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE • Berisi informasi mengenai tiap tabel beserta dengan constraint yang ada pada database yang dipilih g) INFORMATION_SCHEMA.DOMAIN_CONSTRAINTS • Berisi informasi mengenai tiap user-defined database dengan rule-rule yang ada h) INFORMATION_SCHEMA.DOMAINS • Berisi informasi mengenai tiap tipe data user-defined pada database yang dipilih i) INFORMATION_SCHEMA.KEY_COLUMN_USAGE • Berisi informasi mengenai tiap kolom yang digunakan sebagai primary key atau foreign key pada database yang dipilih j) INFORMATION_SCHEMA.PARAMETERS • Berisi informasi mengenai tiap parameter dari function atau procedure yang dibuat pada database yang dipilih k) INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

24 Universitas Kristen Petra • Berisi informasi mengenai tiap foreign key constraint pada database l) INFORMATION_SCHEMA.ROUTINE_COLUMNS • Berisi informasi mengenai tiap kolom yang merupakan nilai kembalian dari function yang dibuat oleh user yang nilainya berupa table valued function m) INFORMATION_SCHEMA.ROUTINES • Berisi informasi mengenai tiap stored procedure atau function yang dibuat oleh user pada database yang dipilih n) INFORMATION_SCHEMA.SCHEMATA • Berisi informasi mengenai tiap database yang ada dalam SQLServer o) INFORMATION_SCHEMA.TABLE_CONSTRAINTS • Berisi informasi mengenai table-level constraint dalam database p) INFORMATION_SCHEMA.TABLE_PRIVILEGES • Berisi informasi mengenai tiap tabel dalam database yang dapat diakses oleh user q) INFORMATION_SCHEMA.TABLES • Berisi informasi mengenai tiap relasi (table atau view) pada database yang dipilih r) INFORMATION_SCHEMA.VIEW_COLUMN_USAGE • Berisi informasi mengenai tiap kolom yang digunakan oleh view pada database yang dipilih s) INFORMATION_SCHEMA.VIEW_TABLE_USAGE • Berisi informasi mengenai tiap tabel yang digunakan oleh view pada database yang dipilih t) INFORMATION_SCHEMA.VIEWS • Berisi informasi mengenai view-view yang ada dalam database yang dipilih

2.10 Survey Aplikasi (Power Designer) Sebelumnya sudah pernah dibuat aplikasi sejenis yang dapat melakukan proses database reverse engineering dan database forward engineering, yaitu Power Designer. Perbedaan mendasar yang membedakan antara Power Designer

25 Universitas Kristen Petra dan aplikasi yang akan dibuat terletak pada notasi ERD yang digunakan dan output dari proses database reverse engineering. Notasi ERD yang digunakan pada Power Designer adalah class diagram, sedangkan notasi ERD yang digunakan pada aplikasi yang akan dibuat adalah notasi Chen. Pada Power Designer, output dari proses database reverse engineering adalah dalam bentuk physical schema dari database yang diproses. Sedangkan pada aplikasi yang akan dibuat ini, output dari proses database reverse engineering berupa conceptual schema dari database yang diproses. Berikut pada Tabel 2.4 akan dijelaskan mengenai fitur-fitur yang terdapat pada Power Designer. Versi Power Designer yang digunakan adalah Power Designer 12. Tabel 2.4 Fitur-fitur Power Designer

Fitur Power Designer Notasi ERD Class diagram Database engine • ADABAS D • ALLBASE / SQL G.1 • ANSI level 2 • AS / 400 • IBM • INFORMIX SQL • Ingres R3 • InterBase • Microsoft Access • Microsoft SQL Server • MySQL • Oracle • PostgreSQL • Red Brick Warehouse • Sybase Entity √ Attribute √ Associative entity √ Inheritance √ Participation • Total • Partial Cardinality • 1-1 • 1-M • M-N

26 Universitas Kristen Petra