• Tidak ada hasil yang ditemukan

4.2.2 Perancangan Basis Data Logikal

4.2.2.1 Menghilangkan Fitur yang Tidak Kompatibel

Tujuan pada langkah ini adalah untuk memperbaiki model data konseptual lokal dengan menghilangkan fitur yang tidak kompatibel dengan model relasional. Cara yang akan digunakan dalam langkah ini adalah dengan menghilangkan hubungan many-to-many (*:*) binary relationship types. Hasilnya dapat dilihat pada gambar diagram ER sebagai berikut :

1. M enghilangkan (*:*) many to many binary relationship

M enangani EmployeeID ProjectID Employee EmployeeID Project ProjectID 1..* 1..*

0..* 1..1 Holiday HolidayID Dimasukkan dalam Dipengaruhi 1..1 0..* 0..* LeaveRequest LeaveRequestID LeaveRequest LeaveRequestID LeaveRequestID HolidayID Holiday HolidayID LeaveHoliday LeaveRequestID HolidayID 0..* Dipengaruhi

(c)LeaveRequest dipengaruhi Holiday *:* relationship

(d) Dekomposisi relasi (c) kedalam 2 relasi (dipengaruhi dan dimasukkan dalam) Ditangani 1..* 1..1 1..1 0..* ProjectMember EmployeeID ProjectID Employee EmployeeID Project ProjectID T erlibat dalam

1..1 Digunakan dalam 1..* 0..* 0..* Project ProjectID 1..1 1..* Stage StageID Project ProjectID ProjectID StageID Stage StageID ActivityPlan ProjectID StageID Sequence StartDate EndDate M engandung Memiliki

(e) Project mengandung Stage *:* relationship

2. M enghilangkan atribut multivalue Employee LeaveRequest Employee EmployeeID Phone [0…*] PersonalEm ail[0…*]

(a) Entiti Employee dengan atribut Phone dan PersonalEm ail yang multivalue

1..1 Employee EmployeeID EmpPhone EmpPhoneNum 0..* EPMempunyai 1..1 Employee EmployeeID PersonalEm ail EmpPersEmail 0..* EEMempunyai LeaveRequest LeaveRequestID LeaveDate[1…*]

(b) Entiti LeaveRequest dengan atribut LeaveDate yang m ultivalue

1..* 1..1 LeaveRequest LeaveRequestID Leave LeaveDate Dimiliki

Client 1..1 Client ClientID ClientFax ClientFaxNum 0..* CFMempunyai 0..* 1..1 0..* Client ClientID ClientPhone ClientPhoneNum CPMempunyai 1..1 Client ClientID ClientEmail ClientEmailAddr CMempunyai Client ClientID ClientPhone [0…*] ClientEmail[0…*] ClientFax[0…*]

EmployeeID di-post ke dalam Absence sebagai foreign key

4.2.2.2 Mendapatkan Relasi untuk Model Data Logikal Lokal 1. One to Many (1:*) binary relationship types

Untuk tiap-tiap relasi binary one-to-many (1:*), entity pertama dari relasi tersebut menjadi parent entity, dan entity berikutnya menjadi child entity.

Hubungan Employee mengisi Absence

Employee (EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

Absence(AbsenceID, EmployeeID,

AbsDate , AbsenceNotes, AbsenceStatus, AbsClaimStatus, AbsenceReason,

BackDate,AbsActualDate)

Primary key AbsenceID , Foreign key EmployeeID

EmployeeID di-post ke dalam LeaveRequest sebagai foreign key

EmployeeID di-post ke dalam Project sebagai foreign key

Hubungan Manager mengatur Project

Manager(EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Project(ProjectID, EmployeeID,

ProjectName, IsFinished, CompletedDate)

Primary key ProjectID Foreign key EmployeeID

Primary key EmployeeID

Hubungan Employee memohon LeaveRequest

Employee (EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

LeaveRequest(LeaveRequestID,

EmployeeID, LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LeaveDate, LRequestStatus,

LeaveReason, DecisionDate)

Primary key LeaveRequestID Foreign key EmployeeID

EmployeeID di-post ke dalam LeaveRequest sebagai foreign key

EmployeeID di-post ke dalam ClaimRequest sebagai foreign key

Hubungan Employee LM empunyai LeaveEntitle

Employee (EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

LeaveEntitle (EmployeeID, EntitleID,

LeaveRequestID , Duration, YearEntitle, EntitleStatus, EntitleActualDate)

Primary key EntitleID, Foreign key EmployeeID,

LeaveRequestID

Hubungan Employee mengajukan ClaimRequest

Employee (EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

ClaimRequest (ClaimID, EmployeeID,

ClaimType, CRequestDate, CRequestStatus, ClaimReason)

Primary key ClaimID Foreign key EmployeeID

EmployeeID di-post ke dalam News sebagai foreign key

DivisionID di-post ke dalam Em ployee sebagai foreign key

Hubungan Manager mempublikasikan News

Employee (EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

News (NewsID, EmployeeID, Title,

News, InsertedDate, DueDate)

Primary key NewsID Foreign key EmployeeID

Primary key EmployeeID

Hubungan Employee mempunyai Division

Division(DivisionID, DivisionName) Primary key DivisionID

Employee (EmployeeID, DivisionID ,

Username, Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID Foreign key DivisionID

ClientID di-post ke dalam Project sebagai foreign key

LeaveRequestID di-post ke dalam LeaveRequest sebagai foreign key

Hubungan Client memberikan Project

Client (ClientID, ClientName,

ClientPhone, ClientFax, ClientEmail, ClientAddress)

Primary key ClientID

Project(ProjectID, ClientID ,

ProjectName, IsFinished, CompletedDate)

Primary key ProjectID Foreign key ClientID

Hubungan LeaveEntitle Lmempengaruhi LeaveRequest

LeaveRequest(LeaveRequestID,

EmployeeID, LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LeaveDate, LRequestStatus,

LeaveReason, DecisionDate)

Primary key LeaveRequestID Foreign key EmployeeID

LeaveEntitle (LeaveRequestID ,

EmployeeID, EntitleID, Duration, YearEntitle, EntitleStatus,

EntitleActualDate)

Primary key EntitleID, Foreign key EmployeeID,

ProjectID di-post ke dalam Absence sebagai foreign key

StageID di-post ke dalam Absence sebagai foreign key

Hubungan Project dipilih dalam Absence

Project(ProjectID, EmployeeID,

ProjectName, IsFinished, CompletedDate)

Primary key ProjectID Foreign key EmployeeID

Absence(AbsenceID, ProjectID,

EmployeeID, AbsDate , AbsenceNotes, AbsenceStatus, AbsClaimStatus, AbsenceReason,

BackDate,AbsActualDate)

Primary key AbsenceID

Foreign key EmployeeID, ProjectID

Hubungan Stage Sdipilih dalam Absence

Stage(StageID, StageDescription) Primary key StageID

Absence(AbsenceID, StageID,

ProjectID, EmployeeID, AbsDate , AbsenceNotes, AbsenceStatus, AbsClaimStatus,

AbsenceReason,

BackDate,AbsActualDate)

Primary key AbsenceID

Foreign key EmployeeID, ProjectID,

AbsT ypeID di-post ke dalam Absence sebagai foreign key

LeaveTypeID di-post ke dalam LeaveRequest sebagai foreign key Hubungan AbsenceType dimiliki Absence

AbsenceType(AbsTypeID,

AbsTypeDescription, ClaimPrice)

Primary key AbsTypeID

Absence(AbsenceID, AbsTypeID,

StageID, ProjectID, EmployeeID, AbsDate , AbsenceNotes, AbsenceStatus, AbsClaimStatus,

AbsenceReason,

BackDate,AbsActualDate)

Primary key AbsenceID

Foreign key EmployeeID, ProjectID,

StageID

Hubungan LeaveType Ldimiliki LeaveRequest

LeaveType(LeaveTypeID,

LeaveTypeDescription)

Primary key LeaveTypeID

LeaveRequest(LeaveTypeID ,

LeaveRequestID, EmployeeID, LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LeaveDate, LRequestStatus, LeaveReason,

DecisionDate)

Primary key LeaveRequestID

Hubungan Employee terlibat dalam ProjectMember Hubungan Project ditangani ProjectMember

Employee (EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

Project(ProjectID, ProjectName,

IsFinished, CompletedDate)

Primary key ProjectID

ProjectMember (EmployeeID, ProjectID)

Foreign key EmployeeID references Employee(EmployeeID) Foreign key ProjectID references Project(ProjectID)

Hubungan LeaveRequest dipengaruhi LeaveHoliday Hubungan Holiday dimasukkan dalam LeaveHoliday

LeaveRequest(LeaveRequestID,

LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LeaveDate, LRequestStatus, LeaveReason,

DecisionDate)

Primary key LeaveRequestID

Holiday (HolidayID, HolidayDate,

Event)

Primary key HolidayID

LeaveHoliday (LeaveRequestID, HolidayID)

Foreign key LeaveRequestID references LeaveRequest(LeaveRequestID) Foreign key HolidayID references Holiday(HolidayID)

EmployeeID di-post ke dalam EmpPhone sebagai foreign key

Hubungan Project Pmemiliki ActivityPlan Hubungan Stage digunakan dalam ActivityPlan

Project(ProjectID, ProjectName,

IsFinished, CompletedDate)

Primary key ProjectID

Stage(StageID, StageDescription) Primary key StageID

ActivityPlan (ProjectID, StageID, Sequence, StartDate, EndDate) Foreign key ProjectID references Project(ProjectID)

Foreign key StageID references Stage (StageID)

Hubungan Employee EPmemiliki EmpPhone

Employee (EmployeeID, Username,

Password , Name, Gender, Title,

Address, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService,

EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

EmpPhone (EmployeeID ,

EmpPhoneNum,)

Primary key EmpPhoneNum Foreign key EmployeeID

EmployeeID di-post ke dalam EmpPhone sebagai foreign key

LeaveRequestID di-post ke dalam Leave sebagai foreign key

Hubungan Employee EEmemiliki PersonalEmail

Employee (EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

PersonalEmail (EmployeeID,

EmpPersEmail)

Primary key EmpPersEmail Foreign key EmployeeID

Hubungan Leave dimiliki LeaveRequest

LeaveRequest(LeaveRequestID,

LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LRequestStatus, LeaveReason, DecisionDate)

Primary key LeaveRequestID

Leave (LeaveDate, LeaveRequestID) Primary key LeaveRequestID,

LeaveDate

ClientID di-post ke dalam ClientPhone sebagai foreign key

ClientID di-post ke dalam ClientEmail sebagai foreign key

ClientID di-post ke dalam ClientFax sebagai foreign key

Hubungan Client CPmemiliki ClientPhone

Client (ClientID, ClientName,

ClientFax, ClientEmail, ClientAddress)

Primary key ClientID

ClientPhone (ClientID,

ClientPhoneNum)

Primary key ClientPhoneNum Foreign key ClientID

Hubungan Client Cmemiliki ClientEmail

Client (ClientID, ClientName,

ClientPhone, ClientFax, ClientAddress)

Primary key ClientID

ClientEmail (ClientID,

ClientEmailAddr)

Primary key ClientEmailAddr Foreign key ClientID

Hubungan Client CFmemiliki ClientFax

Client (ClientID, ClientName,

ClientPhone, ClientEmail, ClientAddress)

Primary key ClientID

ClientFax (ClientID, ClientFaxNum) Primary key ClientFaxNum

StatusID di-post ke dalam Project sebagai foreign key

EmployeeID di-post ke dalam Privilege

sebagai foreign key

Hubungan ProjectStatus Pdimiliki Project

ProjectStatus (StatusID,

StatusProjectDescription)

Primary key StatusID

Project (ProjectID, StatusID,

ProjectName, IsFinished, CompletedDate)

Primary key ProjectID Foreign key StatusID

2. One toOne (1:1) binary relationship types

Mandatory participation di salah satu sisi dari 1:1 relationship

Hubungan Manager memiliki Privilege

Manager (EmployeeID, Username,

Password , Name, Gender, Title, Address, Phone, OfficialEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

Privilege (Payer, EmployeeID ,

AppLeave, AppClaim, VerifierAbsence, SuperUser, NewsEditor, HolidayEditor, ProjectManager)

Primary key EmployeeID Foreign key EmployeeID

AbsenceID di-post ke dalam AllowClaim sebagai foreign key

Hubungan Absence menghasilkan AllowClaim

Absence(AbsenceID, AbsDate ,

AbsenceNotes, AbsenceStatus, AbsClaimStatus,

AbsenceReason,

BackDate,AbsActualDate)

Primary key AbsenceID

AllowClaim (AbsenceID , ClaimID,

AllowClaimPrice,

CRequestDate,CRequestStatus, ClaimReason)

Primary key ClaimID Foreign key AbsenceID

3. Superclass / subclass relationship types

• Mandatory participation disjoint constraint

AllowClaim (EmployeeID, AbsenceID, ClaimID, AllowClaimPrice, CRequestDate,

CRequestStatus, ClaimReason)

Primary key ClaimID Foreign key AbsenceID

NonAllowClaim (EmployeeID, ClaimID, NACDescription, Price, CRequestDate,

CRequestStatus, ClaimReason)

• Hubungan optional Manager dengan Employee

Tabel 4.19 Tabel Hasil Relasi Sebelum Normalisasi

Employee Employee (EmployeeID, DivisionID ,

Username, Password , Name, Gender, Title, Address, OfficialEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate)

Primary key EmployeeID

Foreign key DivisionID references

Division (DivisionID)

Manager Manager (EmployeeID, MgrEmployeeID)

Primary key MgrEmployeeID Foreign key EmployeeID references

Employee(EmployeeID)

EmpPhone EmpPhone (EmployeeID ,

EmpPhoneNum)

Primary key EmpPhoneNum

Foreign key EmployeeID references

Employee (EmployeeID) 1..1 Manager EmployeeID MgrEmployeeID Employee EmployeeID IS-A 1..1

PersonalEmail PersonalEmail (EmployeeID,

EmpPersEmail)

Primary key EmpPersEmail

Foreign key EmployeeID references

Employee (EmployeeID)

Division Division (DivisionID, DivisionName)

Primary key DivisionID

Privilege Privilege (MgrEmployeeID,

VerifierAbsence, AppLeave, AppClaim, Payer, NewsEditor, HolidayEditor, ProjectManager, SuperUser)

Primary key MgrEmployeeID

Foreign key MgrEmployeeID references

Manager (MgrEmployeeID)

LeaveRequest LeaveRequest (LeaveRequestID,

LeaveTypeID, EmployeeID,

MgrEmployeeID LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LRequestStatus, LeaveReason,

DecisionDate)

Primary key LeaveRequestID

Foreign key EmployeeID references

Employee (EmployeeID)

LeaveType (LeaveTypeID)

Foreign key MgrEmployeeID references

Manager (MgrEmployeeID)

Leave Leave (LeaveDate, LeaveRequestID) Primary key LeaveRequestID, LeaveDate Foreign key LeaveRequestID references

LeaveRequest (LeaveRequestID)

LeaveEntitle LeaveEntitle (LeaveRequestID ,

EmployeeID, EntitleID, Duration, YearEntitle, EntitleStatus,

EntitleActualDate)

Primary key EntitleID

Foreign key EmployeeID references

Employee (EmployeeID)

Foreign key LeaveRequestID references

LeaveRequest (LeaveRequestID)

LeaveHoliday LeaveHoliday (LeaveRequestID,

HolidayID)

Foreign key LeaveRequestID references

LeaveRequest(LeaveRequestID)

Foreign key HolidayID references

Holiday(HolidayID)

LeaveType LeaveType (LeaveTypeID,

Primary key LeaveTypeID

Absence Absence (AbsenceID, AbsTypeID,

StageID, ProjectID, EmployeeID, MgrEmployeeID, AbsDate , AbsenceNotes, AbsenceStatus, AbsClaimStatus,

AbsenceReason,

BackDate,AbsActualDate)

Primary key AbsenceID

Foreign key EmployeeID references

Employee (EmployeeID)

Foreign key ProjectID references

Project (ProjectID)

Foreign key StageID references Stage

(StageID)

Foreign key MgrEmployeeID references

Manager (MgrEmployeeID)

Foreign key AbsTypeID references

AbsenceType (AbsTypeID)

AbsenceType AbsenceType (AbsTypeID,

AbsTypeDescription, ClaimPrice)

Primary key AbsTypeID

AllowClaim AllowClaim (AbsenceID, ClaimID,

CRequestDate, CRequestStatus, ClaimReason)

Primary key ClaimID

Foreign key AbsenceID references

Absence (AbsenceID)

Foreign key EmployeeID references

Employee (EmployeeID)

NonAllowClaim NonAllowClaim (ClaimID, EmployeeID ,

Sequence, NACDescription, Price, CRequestDate, CRequestStatus, ClaimReason)

Primary key ClaimID

Foreign key EmployeeID references

Employee (EmployeeID)

Project Project (ProjectID, MgrEmployeeID ,

ClientID , StatusID, ProjectName, IsFinished, CompletedDate)

Primary key ProjectID

Foreign key ClientID references Client

(ClientID)

Foreign key StatusID references Status

(StatusID)

Foreign key MgrEmployeeID references

ProjectMember ProjectMember (EmployeeID, ProjectID) Foreign key EmployeeID references

Employee(EmployeeID)

Foreign key ProjectID references

Project(ProjectID)

ProjectStatus ProjectStatus (StatusID,

StatusProjectDescription)

Primary key StatusID

Client Client (ClientID, ClientName,

ClientAddress)

Primary key ClientID

ClientPhone ClientPhone (ClientID, ClientPhoneNum) Primary key ClientPhoneNum

Foreign key ClientID references

Client(ClientID)

ClientEmail ClientEmail (ClientID, ClientEmailAddr) Primary key ClientEmailAddr

Foreign key ClientID references

Client(ClientID)

ClientFax ClientFax (ClientID, ClientFaxNum) Primary key ClientFaxNum

Client(ClientID)

Stage Stage(StageID, StageDescription) Primary key StageID

News News (NewsID, MgrEmployeeID, Title,

News, InsertedDate, DueDate)

Primary key NewsID

Foreign key MgrEmployeeID references

Manager(MgrEmployeeID)

Holiday Holiday (HolidayID, HolidayDate, Event) Primary key HolidayID

ActivityPlan ActivityPlan (ProjectID, StageID,

Sequence, StartDate, EndDate)

Foreign key ProjectID references

Project(ProjectID)

Foreign key StageID references Stage

4.2.2.3 Normalisasi

Tujuan dari normalisasi adalah untuk memvalidasi relasi-relasi dalam model data logikal lokal dengan menggunakan teknik-teknik normalisasi.

Semua relasi telah memenuhi 1NF karena tidak ditemukan field yang mengalami redundansi data.

• Pada entitas Employee

Employee = (@EmployeeID + DivisionID +Username+ Password + Name + Gender + Title + Address + OfficialEmail + BirthDate + Color + StartofService + EmpStatus + NPWP + EmpNotes + ResignDate) 2NF

Di dalam entitas Employee, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas Employee, tidak terdapat ketergantungan transitif. • Pada entitas Manager

Manager = (@MgrEmployeeID + EmployeeID) 2NF

Di dalam entitas Manager, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

• Pada Entitas EmpPhone

EmpPhone = (@EmpPhoneNum + EmployeeID)

2NF

Di dalam entitas EmpPhone, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas EmpPhone, tidak terdapat ketergantungan transitif. • Pada Entitas PersonalEmail

PersonalEmail = (@EmpPersEmail + EmployeeID)

2NF

Di dalam entitas PersonalEmail, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas PersonalEmail, tidak terdapat ketergantungan transitif. • Pada Entitas Division

Division = (@DivisionID + DivisionName)

2NF

Di dalam entitas Division, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

Di dalam entitas Division, tidak terdapat ketergantungan transitif • Pada Entitas Privilege

Privilege = (@MgrEmployeeID + VerifierAbsence + AppLeave + AppClaim +

Payer + NewsEditor + HolidayEditor + ProjectManager + SuperUser)

2NF

Di dalam entitas Privilege, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

Di dalam entitas Privilege, tidak terdapat ketergantungan transitif • Pada Entitas LeaveRequest

LeaveRequest = (@LeaveRequestID + LeaveTypeID + EmployeeID +

MgrEmployeeID + LStartDate + LEndDate + Duration + LeaveNotes + LRequestDate + LRequestStatus + LeaveReason + DecisionDate)

2NF

Di dalam entitas LeaveRequest, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas LeaveRequest, tidak terdapat ketergantungan transitif • Pada Entitas Leave

2NF

Di dalam entitas Leave, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

Di dalam entitas Leave, tidak terdapat ketergantungan transitif • Pada Entitas LeaveEntitle

LeaveEntitle = (@LeaveRequestID + EmployeeID + EntitleID + Duration +

YearEntitle + EntitleStatus + EntitleActualDate)

2NF

Di dalam entitas LeaveEntitle, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas LeaveEntitle, tidak terdapat ketergantungan transitif • Pada Entitas LeaveHoliday

LeaveHoliday = (@LeaveRequestID + HolidayID)

2NF

Di dalam entitas LeaveHoliday, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

• Pada Entitas LeaveType

LeaveType = (@LeaveTypeID, LeaveTypeDescription)

2NF

Di dalam entitas LeaveType, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas LeaveType, tidak terdapat ketergantungan transitif • Pada Entitas Absence

Absence = (@AbsenceID + AbsTypeID + StageID + ProjectID + EmployeeID +

MgrEmployeeID + AbsDate + AbsenceNotes + AbsenceStatus + AbsClaimStatus + AbsenceReason + BackDate + AbsActualDate)

2NF

Di dalam entitas Absence, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

Di dalam entitas Absence, tidak terdapat ketergantungan transitif • Pada Entitas AbsenceType

AbsenceType = (@AbsTypeID + AbsTypeDescription + ClaimPrice)

2NF

Di dalam entitas AbsenceType, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas AbsenceType, tidak terdapat ketergantungan transitif • Pada Entitas AllowClaim

UNF

AllowClaim= (EmployeeID + MgrEmployeeID + ClaimID+{ AllowClaimPrice+

AbsenceID}+ CRequestDate+CRequestStatus+ ClaimReason)

1NF

AllowClaim= @EmployeeID + MgrEmployeeID +

@ClaimID+AllowClaimPrice+ @AbsenceID+

CRequestDate+CRequestStatus+ ClaimReason 2NF

AllowClaimDetail =@ClaimID+AllowClaimPrice+ @AbsenceID

AllowClaimHeader=@EmployeeID + MgrEmployeeID + @ClaimID+

CRequestDate+CRequestStatus+ ClaimReason 3NF

AllowClaimDetail =@ClaimID+AllowClaimPrice+ @AbsenceID

Employee=@EmployeeID

Manager = @MgrEmployeeID

AllowClaimHeader= EmployeeID + MgrEmployeeID +

@ClaimID+CRequestDate+ CRequestStatus+ ClaimReason Absence=@AbsenceID

• Pada Entitas NonAllowClaim UNF

NonAllowClaim = (EmployeeID + MgrEmployeeID + ClaimID + Sequence +

{NACDescription + Price}+ CRequestDate + CRequestStatus + ClaimReason)

1NF

NonAllowClaim= @EmployeeID+ MgrEmployeeID + @ClaimID +

@Sequence + NACDescription+ Price+ CRequestDate+ CRequestStatus+ ClaimReason

2NF

NonAllowClaimDetail = @ClaimID + NACDescription+ @Sequence+ Price

NonAllowClaimHeader= @EmployeeID + MgrEmployeeID + @ClaimID +

CRequestDate + CRequestStatus + ClaimReason 3NF

NonAllowClaimDetail = @ClaimID + NACDescription + @Sequence + Price

Employee=@EmployeeID

Manager = @MgrEmployeeID

NonAllowClaimHeader==EmployeeID + MgrEmployeeID + @ClaimID +

CRequestDate + CRequestStatus + ClaimReason • Pada Entitas Project

Project = (@ProjectID + MgrEmployeeID + ClientID + ProjectName +

2NF

Di dalam entitas Project , semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

Di dalam entitas Project, tidak terdapat ketergantungan transitif • Pada Entitas ProjectMember

ProjectMember = (@EmployeeID + ProjectID)

2NF

Di dalam entitas ProjectMember, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas ProjectMember, tidak terdapat ketergantungan transitif • Pada Entitas ProjectStatu s

ProjectStatus = (@StatusID + StatusProjectDescription)

2NF

Di dalam entitas ProjectStatus, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas ProjectStatus, tidak terdapat ketergantungan transitif • Pada Entitas Client

Client = (@ClientID + ClientName + ClientAddress)

2NF

Di dalam entitas Client, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

Di dalam entitas Client, tidak terdapat ketergantungan transitif • Pada Entitas Stage

Stage = (@StageID + StageDescription)

2NF

Di dalam entitas Stage, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

Di dalam entitas Stage, tidak terdapat ketergantungan transitif • Pada Entitas News

News = (@NewsID + EmployeeID + MgrEmployeeID + Title + News +

InsertedDate + DueDate)

2NF

Di dalam entitas News, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

Di dalam entitas News, tidak terdapat ketergantungan transitif • Pada Entitas Holiday

Holiday = (@HolidayID + HolidayDate + Event)

2NF

Di dalam entitas Holiday, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.

3NF

Di dalam entitas Holiday, tidak terdapat ketergantungan transitif • Pada Entitas ActivityPlan

ActivityPlan = (@ProjectID + StageID + Sequence + StartDate + EndDate)

2NF

Di dalam entitas ActivityPlan, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak

diperlukan normalisasi 2NF. 3NF

Di dalam entitas ActivityPlan, tidak terdapat ketergantungan transitif

4.2.2.4 Mendefinisikan Integrity Constraint

Dokumen terkait