-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCreate_tables.sql
More file actions
76 lines (64 loc) · 2.86 KB
/
Create_tables.sql
File metadata and controls
76 lines (64 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* ===============================
CREATE DATABASE TABLES
Fraud Risk Analysis Project
================================= */
/* 1️⃣ TABLE: Musteriler (Customers) */
CREATE TABLE Musteriler (
customer_id NUMBER(10) NOT NULL,
first_name VARCHAR2(100 CHAR),
last_name VARCHAR2(100 CHAR),
date_of_birth DATE,
city VARCHAR2(50 CHAR),
country VARCHAR2(50 CHAR),
registration_date TIMESTAMP,
CONSTRAINT pk_customers PRIMARY KEY (customer_id)
);
COMMENT ON TABLE Musteriler IS 'Bankın unikal müştəriləri haqqında məlumatları saxlayır.';
COMMENT ON COLUMN Musteriler.customer_id IS 'Müştərinin unikal nömrəsi (PK).';
/* 2️⃣ TABLE: Saticilar (Merchants) */
CREATE TABLE Saticilar (
merchant_id NUMBER(10) NOT NULL,
merchant_name VARCHAR2(100 CHAR),
merchant_category VARCHAR2(50 CHAR),
merchant_country VARCHAR2(50 CHAR),
CONSTRAINT pk_merchants PRIMARY KEY (merchant_id)
);
COMMENT ON TABLE Saticilar IS 'Ödənişlərin qəbul edildiyi ticarət və xidmət obyektləri.';
COMMENT ON COLUMN Saticilar.merchant_id IS 'Satıcının unikal nömrəsi (PK).';
/* 3️⃣ TABLE: Kartlar (Cards) */
CREATE TABLE Kartlar (
card_id NUMBER(10) NOT NULL,
customer_id NUMBER(10) NOT NULL,
card_number VARCHAR2(25 CHAR),
card_type VARCHAR2(20 CHAR),
credit_limit NUMBER(10,2),
card_status VARCHAR2(20 CHAR),
issue_date DATE,
CONSTRAINT pk_cards PRIMARY KEY (card_id),
CONSTRAINT fk_cards_customers FOREIGN KEY (customer_id)
REFERENCES Musteriler(customer_id),
CONSTRAINT chk_card_status CHECK (card_status IN ('Active', 'Stolen'))
);
COMMENT ON TABLE Kartlar IS 'Müştərilərə aid olan kredit/debet kartları.';
COMMENT ON COLUMN Kartlar.customer_id IS 'Müştəri ID-si (FK).';
COMMENT ON COLUMN Kartlar.card_status IS 'Active və ya Stolen statusu.';
/* 4️⃣ TABLE: Tranzaksiyalar (Transactions) */
CREATE TABLE Tranzaksiyalar (
transaction_id NUMBER(19) NOT NULL,
card_id NUMBER(10) NOT NULL,
merchant_id NUMBER(10) NOT NULL,
transaction_amount NUMBER(10,2),
transaction_datetime TIMESTAMP,
transaction_location VARCHAR2(100 CHAR),
transaction_status VARCHAR2(20 CHAR),
is_fraud NUMBER(1) NOT NULL,
CONSTRAINT pk_transactions PRIMARY KEY (transaction_id),
CONSTRAINT fk_transactions_cards FOREIGN KEY (card_id)
REFERENCES Kartlar(card_id),
CONSTRAINT fk_transactions_merchants FOREIGN KEY (merchant_id)
REFERENCES Saticilar(merchant_id),
CONSTRAINT chk_is_fraud CHECK (is_fraud IN (0,1))
);
COMMENT ON TABLE Tranzaksiyalar IS 'Bütün maliyyə əməliyyatlarının qeydi.';
COMMENT ON COLUMN Tranzaksiyalar.is_fraud IS '1 = fraud, 0 = normal';
COMMIT;