Toshkent axborot texnologiyalari
Ma’lumotlar bazasini ishlab chiqish
Download 0.76 Mb.
|
Kurs ishi
3.3 Ma’lumotlar bazasini ishlab chiqish.
Loyihada ma’lumotlar bazasi sifatida MySQL ma’lumotlar bazasidan foydalanamiz. Bunga asosiy sabab MySQL ma’lumotlar bazasi bilan barcha dasturlash tillarining kelishishi qulayligi, hamda ayrim jihatlarga ko’ra boshqa ma’lumotlar bazasi tizimlaridan tezkorligi bilan farq qiladi. Quyida MySQL haqida qisqacha ma’lumotlarni keltiramiz: MySQL — bu eng mashhur va juda ko'p foydalaniladigan ma'lumotlar bazasini boshqarish tizimi(MBBT) hisoblanadi. Bu tizim juda katta ma'lumotlar bilan ishlash uchun yaratilmagan, aksincha biroz kichik hajmdagi bazalar bilan katta tezlikda ishlash uchun yaratilgan. Uning asosiy ishlash doirasi, saytlar hisoblanadi. Hozirgi kunda juda ko'p sayt va bloklarning ma'lumotlari aynan shu MBBT saqlanadi. Ho'sh, saytlarning nimalari bazada saqlanishi mumkin? Dastlab, ma'lumotlar saqlash uchun dasturchilar fayllardan foydalanishgan, ya'ni fayl ochilib kerakli ma'lumotlar u yerga saqlanib, kerakli paytda chaqirib ishlatilgan. Keyinchalik fayllardan voz kechilib(noqulayliklar yuzaga kelgan, ya'ni faylni ochish, o'qish, yopish,.. ko'p vaqtni olib qo'ygan, u yerdan qidirish, xullas juda ko'p), ma'lumotlar bazasiga o'tilgan. Bazada saytdagi maqolalar, sayt foydalanuvchilari haqidagi ma'lumotlar, sayt kontentlari, qoldirilgan kommentariyalar, savol-javoblar, hisoblagich natijalari va shunga o'xshash juda ko'p ma'lumotlar saqlanadi. MySQL shunday ma'lumotlarni o'zida saqlaydi. MySQL — juda katta tezlikda ishlovchi va qulay hisoblanadi. Bu tizimda ishlash juda sodda va uni o'rganish qiyinchilik tug'dirmaydi. MySQL tizimi tcx kompaniyasi tomonidan, ma'lumotlarni tez qayta ishlash uchun korxona miqyosida ishlatishga yaratilgan. Keyinchalik ommalashib, saytlarning asosiy bazasi sifatida yoyildi. So'rovlar SQL tili orqali amalga oshiriladi. Bu MBBT relyatsion ma'lumotlar baza hisoblanadi. Bu degani baza jadvallar, jadvallar esa ustunlardan tashkil topgandir. MySQL MBBTi 2 xil turdagi litsenziyaga ega. Birinchisi tekin, ya'ni MYSQLni ko'chirib olish va ishlatish hech qanday harajat talab qilmaydi va GPL(GNU Public Licenseb, GNU) litsenziyasiga asoslanadi. Ikkinchi turi, GPL shartiga ko'ra, agar siz MySQL kodlarini biror dasturingizda ishlatsangiz, bu dasturingiz ham GPL(tekin) bo'lishi kerak. Bu esa dasturchiga to'g'ri kelmaydi. Shuning uchun, bu dasturingizni pullik qilishingiz uchun MySQL pullik litsenziyasini sotib olishingiz kerak. MySQL logotipi delfin hisoblanadi. Bu delfinni ismi «Sakila»dir. Bu logotipni OpenSource tuzuvchilaridan biri Ambrose Twebaze ga tegishlidir. MySQL juda ko'p operatsion tizimlar bilan ishlay oladi. Bularni yozadigan bo'lsam: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, UnixWare, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2000, Windows Vista, Windows 7,… MySQL shved korxonasi MySQl AB ga tegishli bo'lgan, keyinchalik SUN firmasi MySQL ni o'ziniki qilib olgan. Bir necha yil oldin esa, gigant korxonalardan biri Oracle, SUN firmasini sotib oldi va hozirda MySQL Oracle firmasi mahsuloti sifatida chiqib kelmoqda. Bu bir hisobda Microsoft SQL Server ga katta raqobatdosh ekanligini anglatadi. MySQL bir necha serverlarning bir qismi hisoblanadi. Misol uchun, WAMP, AppServ, LAMP, Denwer,… Kliyentlar MySQL serveriga ma'lum bir kutubxonalar orqali ulanadi. MySQL ga quyidagi dasturlash tillari ulanib ishlashi mumkin: Delphi, C, C++, Java, Perl, Php, Python, Ruby va boshqalar. Loyihamiz uchun kerakli ma’lumotlar bazasining bir qismi quyidagi ko’rinishda To’liq ma’lumotlar bazasi uchun kerakli SQL kodlari quyidagicha: -- phpMyAdmin SQL Dump -- version 4.9.7 -- https://www.phpmyadmin.net/ -- -- Host: localhost -- Generation Time: Dec 16, 2020 at 06:09 PM -- Server version: 8.0.22-0ubuntu0.20.04.3 -- PHP Version: 7.4.13
SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `medical_system` --
-- Table structure for table `bed` --
`id` int NOT NULL, `bed_num` int NOT NULL, `created_at` timestamp NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- Table structure for table `doctor` --
`id` int NOT NULL, `doctor_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, `sex` enum('MALE','FEMALE') COLLATE utf8mb4_general_ci NOT NULL, `age` int NOT NULL, `created_at` timestamp NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- Table structure for table `exam` --
`id` int NOT NULL, `exam_desc` text COLLATE utf8mb4_general_ci NOT NULL, `exam_date` timestamp NOT NULL, `patient_id` int NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -------------------------------------------------------- -- -- Table structure for table `patient` --
`id` int NOT NULL, `doctor_id` int NOT NULL, `name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, `sex` enum('MALE','FEMALE') COLLATE utf8mb4_general_ci NOT NULL, `age` int NOT NULL, `created_at` timestamp NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -------------------------------------------------------- -- -- Table structure for table `therapy` --
`id` int NOT NULL, `patient_id` int NOT NULL, `bed_id` int NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -- Indexes for dumped tables --
-- Indexes for table `bed` -- ALTER TABLE `bed` ADD PRIMARY KEY (`id`); -- -- Indexes for table `doctor` -- ALTER TABLE `doctor` ADD PRIMARY KEY (`id`); -- -- Indexes for table `exam` -- ALTER TABLE `exam` ADD PRIMARY KEY (`id`), ADD KEY `patient_id` (`patient_id`); -- -- Indexes for table `patient` -- ALTER TABLE `patient` ADD PRIMARY KEY (`id`), ADD KEY `doctor_id` (`doctor_id`); -- -- Indexes for table `therapy` -- ALTER TABLE `therapy` ADD PRIMARY KEY (`id`), ADD KEY `patient_id` (`patient_id`), ADD KEY `bed_id` (`bed_id`);
-- AUTO_INCREMENT for dumped tables --
-- AUTO_INCREMENT for table `bed` -- ALTER TABLE `bed` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `doctor` -- ALTER TABLE `doctor` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `exam` -- ALTER TABLE `exam` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `patient` -- ALTER TABLE `patient` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `therapy` -- ALTER TABLE `therapy` MODIFY `id` int NOT NULL AUTO_INCREMENT; -- -- Constraints for dumped tables --
-- Constraints for table `exam` -- ALTER TABLE `exam` ADD CONSTRAINT `exam_ibfk_1` FOREIGN KEY (`patient_id`) REFERENCES `patient` (`id`); -- -- Constraints for table `patient` -- ALTER TABLE `patient` ADD CONSTRAINT `patient_ibfk_1` FOREIGN KEY (`doctor_id`) REFERENCES `doctor` (`id`); -- -- Constraints for table `therapy` -- ALTER TABLE `therapy` ADD CONSTRAINT `therapy_ibfk_1` FOREIGN KEY (`bed_id`) REFERENCES `bed` (`id`), ADD CONSTRAINT `therapy_ibfk_2` FOREIGN KEY (`patient_id`) REFERENCES `patient` (`id`); COMMIT;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Hammamizga ma’lumki, XXI asr “Axborot texnologiyalari asri” hisoblanadi. Bu asrda dasturlash sohasida misli ko‘rilmagan o‘zgarishlar bo‘ldi. Bunda avtomatlashtirish dasturning asosini tashkil qiladi. Yuqorida yaratilgan dastur ham foydalanuvchiga turli qulayliklar yaratib, bemorlarni ro’yxatga olish hamda ular haqidagi ma’lumotlarni istalgan yerdan bilib olish imkoni beradi. Bu loyiha ishini bajarrish davomida, PHP dasturlash tili haqidagi bilimlarimni yanada mustahkamlab oldim, hamda PHP ning imkoniyatlari naqadar keng ekanligini tushunib yetdim. Download 0.76 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling