├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.002.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.003.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.004.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.005.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.006.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.007.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.008.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.009.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.010.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.011.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.012.png ├── Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.001.jpeg ├── README.md └── MainCode.sql /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.002.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.003.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.004.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.005.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.006.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.007.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.008.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.009.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.010.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.011.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.012.png -------------------------------------------------------------------------------- /Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.001.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metasina3/SQL/HEAD/Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.001.jpeg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | پایگاه داده سامانه رزرواسیون هتل 3 | 4 | 5 | نمودار ER: در این نمودار روابط موجودیت های مختلف با صفت های ان مورد بررسی قرار می گیرد. 6 | 7 | موجودیت ها شامل مشتری,اتاق,کارمند می باشد. 8 | 9 | نمودار ان به شکل زیر است: 10 | 11 | 12 | ![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.001.jpeg) 13 | 14 | 15 | 16 | بعد از مرحله تحلیل و رسم نمودار ER با استفاده از ان جداول مورد نیاز هر موجودیت به طوری که در بهینه ترین حالت باشند را در SQL طراحی میکنیم کد دستورات به صورت زیر است: 17 | 18 | ![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.002.png)![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.003.png) 19 | 20 | با توجه به تصاویر تمام موجودیت ها و روابط به جداولی دقیقا با همان صفات و کلید اصلی نمودار ER طراحی شده است. 21 | 22 | پس از ساخت و طراحی جداول نیاز به درج اطاعات داریم تا با استفاده از داده هایی که با دستورات SQL وارد میکنیم کویری های مناسب برای این پایگاه داده اضافه کنیم. 23 | 24 | کد دستورات به صورت زیر است: 25 | 26 | ![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.004.png)![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.005.png) 27 | 28 | بعد از درج مقادیر جداول خروجی جداول به صورت زیر است: 29 | 30 | جدول مشتری: 31 | 32 | ![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.006.png) 33 | 34 | جدول اتاق 35 | 36 | ![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.007.png) 37 | 38 | جدول کارمند:![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.008.png) 39 | 40 | 41 | جدول reserve: 42 | 43 | ![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.009.png) 44 | 45 | 46 | جدول services: 47 | 48 | ![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.010.png) 49 | 50 | حال می توانیم با استفاده از دستورات SQL کویری هایی زده باشیم که عبارت اند از: 51 | 52 | 53 | 54 | ![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.011.png)![](Aspose.Words.02d91048-044b-4733-a80e-a0158857d62a.012.png) 55 | -------------------------------------------------------------------------------- /MainCode.sql: -------------------------------------------------------------------------------- 1 | 2 | CREATE TABLE customer ( 3 | cust_id INTEGER PRIMARY KEY, 4 | name VARCHAR(30) NOT NULL, 5 | family VARCHAR(30) NOT NULL, 6 | address VARCHAR(30) NOT NULL 7 | ); 8 | 9 | 10 | CREATE TABLE room( 11 | room_id VARCHAR(30) NOT NULL PRIMARY KEY, 12 | stage INTEGER NOT NULL, 13 | bed_numer INTEGER NOT NULL, 14 | amount INTEGER NOT NULL 15 | ); 16 | 17 | 18 | CREATE TABLE employ( 19 | emp_id VARCHAR(30) NOT NULL PRIMARY KEY, 20 | emp_name VARCHAR(30) NOT NULL, 21 | salary INTEGER NOT NULL 22 | ); 23 | 24 | 25 | CREATE TABLE reserve( 26 | cust_id INTEGER NOT NULL, 27 | room_id VARCHAR(30) NOT NULL, 28 | FOREIGN KEY (cust_id) REFERENCES customer(cust_id) , 29 | FOREIGN KEY (room_id) REFERENCES room(room_id) , 30 | PRIMARY KEY (cust_id,room_id) 31 | ); 32 | 33 | CREATE TABLE services( 34 | emp_id VARCHAR(30) NOT NULL, 35 | room_id VARCHAR(30) NOT NULL, 36 | FOREIGN KEY (emp_id) REFERENCES employ(emp_id) , 37 | FOREIGN KEY (room_id) REFERENCES room(room_id) , 38 | PRIMARY KEY (emp_id,room_id) 39 | ); 40 | 41 | 42 | 43 | insert into customer values (1,'ali','shahedi','tehran'); 44 | insert into customer values (2,'sara','ahmadipor','tabriz'); 45 | insert into customer values (3,'reza','masoodi','tehran'); 46 | insert into customer values (4,'armin','mehrshadi','mazandaran'); 47 | insert into customer values (5,'nika','amiri','esfahan'); 48 | insert into customer values (6,'maryam','kashani','kashan'); 49 | insert into customer values (7,'ali','tehrani','tehran'); 50 | 51 | 52 | insert into room values('r1',1,2,3000); 53 | insert into room values('r2',1,2,3000); 54 | insert into room values('r3',2,3,2700); 55 | insert into room values('r4',2,2,2400); 56 | insert into room values('r5',3,1,1200); 57 | insert into room values('r6',3,3,4000); 58 | insert into room values('r7',4,1,2000); 59 | insert into room values('r8',4,2,34000); 60 | insert into room values('r9',5,3,5000); 61 | insert into room values('r10',5,2,2000); 62 | 63 | insert into reserve values(1,'r1'); 64 | insert into reserve values(2,'r3'); 65 | insert into reserve values(3,'r2'); 66 | insert into reserve values(4,'r5'); 67 | insert into reserve values(5,'r7'); 68 | insert into reserve values(6,'r10'); 69 | insert into reserve values(7,'r6'); 70 | 71 | insert into employ values('em1','mohsen',12000); 72 | insert into employ values('em2','negin',22000); 73 | insert into employ values('em3','sara',7000); 74 | insert into employ values('em4','ali',9000); 75 | insert into employ values('em5','reza',10000); 76 | 77 | 78 | insert into services values('em2','r3'); 79 | insert into services values('em1','r1'); 80 | insert into services values('em3','r2'); 81 | insert into services values('em4','r5'); 82 | insert into services values('em5','r6'); 83 | insert into services values('em2','r7'); 84 | insert into services values('em2','r4'); 85 | 86 | 87 | 88 | -- اسامی مسافران هتل 89 | 90 | select * from customer; 91 | 92 | -- اطلاعات مسافران هتل که تهرانی هستند 93 | select * from customer where address='tehran'; 94 | 95 | 96 | 97 | -- ارزان ترین اتاق 98 | select * from room 99 | where amount <=(select min(amount) from room) 100 | ; 101 | 102 | -- اتاق های رزرو نشده 103 | select * from room 104 | where room_id not in( 105 | select room_id from reserve 106 | ); 107 | 108 | -- تعداد اتاق های در حال فعالیت کارمندان 109 | select emp_id,count(*) as number_room from services 110 | GROUP BY emp_id 111 | ; 112 | 113 | 114 | -- اطلاعات مسافر که اتاق شماره 3 را رزرو کرده است 115 | 116 | select customer.cust_id,name,family from customer right join reserve 117 | on customer.cust_id=reserve.cust_id 118 | where room_id='r3'; 119 | 120 | 121 | --------------------------------------------------------------------------------