SAĞLIK KURUMLARINDA BİLGİ SİSTEMLERİ - Ünite 4: Veri Tabanı Yönetim Sistemleri Özeti :
PAYLAŞ:Ünite 4: Veri Tabanı Yönetim Sistemleri
Temel Veritabanı Kavramları
Veri; kayıt etmeye değer bulunan her türlü olay ve fikirdir.
Bilgi; anlamlı biçimde derlenen, birleştirilen ve verilecek kararlar için kullanılan gerçek bir değerdir.
Tablo; verilerin satırlar ve sütunlar halinde ifade edilmesiyle oluşan veri grubudur. Tablo satırları her bir kaydı, tablo sütunları ise kaydın farklı boyut ve özelliklerini temsil etmektedir. Örneğin farklı hastalar farklı satırlarda yer alabileceği gibi ad-soyadı gibi bilgileri farklı sütunlarla temsil edilebilmektedir.
Veritabanı; uygulama programlarında kullanılan belirli bir konuya sahip verilerin bir arada toplandığı işlevsel verilerin bütünüdür. Veritabanında yer alan verilerin tümü veya istenen özelliklere uyanları görüntülenebilir, yazdırılabilir yada yeni bilgiler türetmek amacıyla kullanılabilir.
Veritabanı Yönetim Sistemi (VTYS); en üst seviye olan Microsoft Access, Oracle, SQL Server, Progress, Sybase vb. veri tabanlarının yönetilmesine ilişkin yazılımlar mevcuttur, bunlara VTYS denilmektedir. Bu sistem ile veritabanı oluşturmak, kullanıcıların erişimlerini düzenlemek, veritabanı bakımını yapmak gibi işlemler gerçekleştirilir.
İlişkisel Veritbanı; tablolar arasında ilişkilerin olduğu bir veri modelidir, matematikteki ilişki teorisine dayanır.
Birincil Anahtar (Primary Key); tabloya ait kayıtları benzersiz olarak tanımlayan alanlardır.
Yabancı Anahtar (Foreign Key); tabloları ilişkilendirmede verilerin birbirleri ile iletişim kurabilmeleri amacı ile kullanılan, benzersiz olması gerekmeyen alanlardır.
SQL (Structured Query Language); kendine özgü komutları olan yapısal sorgulama dilidir. Hemen hemen tüm ilişkisel veritabanı yönetim sistemleri SQL’i ortak dil olarak kullanmaktadır.
VTYS uygulamadan gelen istekleri (SQL cümlelerini okuyarak) alır, veritabanı dosyaları üzerinde verileri okuyarak ya da yazarak istekleri gerçekleştirir. VTYS ile veri tekrarı önlenmiş, veri tutarlılığı, veri paylaşımı, veri bütünlüğü, veri güvenliği ve veri bağımsızlığı sağlanmış olur.
Veritabanı Yönetim Sisteminin Yaptığı İşler: Uygulamadan gelen istekleri alarak bunları veritabanı dosyaları üzerinde, verileri okuyarak ya da yazarak gerçekleştirir.
Veritabanı Uygulamasının Yaptığı İşler: Veritabanı yönetim sistemi ile kullanıcı arasında iletişimi sağlayan bir ya da birden fazla bilgisayar programıdır.
Kullanıcının Yaptığı İşler: İşlerini gerçekleştirmek için veritabanını kullanır. Yeni veri ekler, mevcut verileri değiştirir veya verileri siler.
Veritabanı Yönetim Sistemlerinin Sağladığı Yararlar
Veri tekrarı: Aynı veri farklı kişilerin bilgisayarlarında tekrar tekrar tutulmaz.
Veri tutarlılığı: Aynı verinin değişik yerlerde birkaç kopyasının bulunması “bakım” zorluğu getirir.
Veri paylaşımı: Veritabanı yönetim sistemi kullanılmadığı durumlarda veriye sıralı erişim yapılır. Yani birden çok kullanıcı aynı anda aynı veriye erişemez.
Veri bütünlüğü: Hasta bilgileri tablosundan bir hasta kaydı silinirse, diğer ilişkili tüm tablolardan o hastanın bilgileri silinmelidir.
Veri güvenliği: Verinin isteyerek ya da yanlış kullanım sonucu bozulmasını önlemek için çok sıkı sınırlamalar mevcuttur.
Veri Bağımsızlığı: Programcı, kullandığı verilerin yapısı ve organizasyonu ile ilgilenmek durumunda değildir.
Veritabanı Tasarımı
Veritabanı tasarımı genel olarak 6 aşamadan oluşmaktadır:
- Gereklilik Analizi; saklanacak veri, gerçekleştirilecek uygulama, sorgular, değişiklikler belirlenir.
- Kavramsal Tasarım-Veri Modellemesi; veri tabanının hangi verileri içereceği, bu verilerin nasıl ilişkilendirileceği, verilerin birbirleri ile bağımlılık durumları belirlenir.
- Mantıksal Tasarım; Veri türleri, verilerin tablolar içerisinde nasıl konumlandırılacağı, veri anahtarları belirlenir. Bu sayede kavramsal tasarım VTYS için uygun bir şemaya dönüşür.
- Şematik Filtreleme; Veritabanındaki veriler arası ilişki analizinde tespit edilen problemler belirlenerek, şematik yapı filtrelenir.
- Fiziksel Tasarım; Verilerin dosyalanması ve indekslenmesi gerçekleştirilir. Bu sayede dosya organizasyonu ve işlemleri hızlı ve etkili bir şekilde yapılabilmektedir.
- Uygulama ve Güvenlik Tasarımı; uygulama programı yazılır, hangi kullanıcının hangi veriye ulaşabileceği belirlenir, veriye ulaşım testleri yapılır.
Veritabanı Modelleme
VTYS belirli bir veri modeline dayanır. Veri modeli, veriyi mantıksal düzeyde düzenlemek için kullanılan kavramlar, yapılar ve işlemler topluluğuna denir. Geliştirilen veri modelleri aşağıdaki gibidir:
- Hiyerarşik veri modeli,
- Ağ veri modeli,
- İlişkisel veri modeli,
- Nesneye yönelik veri modeli.
Bunlar içerisinden günümüzde en yaygın olarak kullanılanı E-R(Entitiy-Relationship) modeli olarak da bilinen ilişkisel veri modelidir.
E-R (Entitiy-Relationship, Varlık-İlişki) İlişkisel Veri Modeli
Veritabanı tasarım işlemi birkaç değişik işlem aşamalarından oluşur. İlk olarak, veritabanı yapılacak kurum ya da kuruluşun ihtiyacı olan bilgilerin analizi yapılır. Bu süreçte, veritabanı tasarımcısı, veritabanı kullanıcıları ile görüşerek kullanıcı ihtiyaçlarını tespit eder.
İlişkisel veri modeli türlerinden olan E-R (EntitiyRelationship=Varlık-İlişki) modeli günümüzde yaygın şekilde kullanılmaktadır.
E-R Modeli Kavramları
Varlık ve nitelikleri: Gerçek hayatta diğerlerinden ayırt edilebilen nesnelere varlık denir. Bir varlık, kişi, araba, ev veya hasta gibi fiziksel nesneler olabileceği gibi, şirket, iş veya ders gibi fiziksel olmayan nesneler de olabilir. Her varlık kendisini tanımlayan, kendisine has niteliklere sahiptir.
Varlık kümesi: Veritabanında benzer varlıklar ve nitelik değerlerinden oluşan kümeye varlık kümesi denir.
Anahtar Nitelik: Varlık kümesindeki bir veya daha fazla niteliğin değeri, her bir varlık için farklı ise bu nitelik anahtar niteliktir.
İlişkiler: İki veya daha fazla varlık kümesi arasında kurulan anlamlı bağıntılara ilişki denir.
İlişki Türleri: Varlık kümeleri aralarında 4 türde ilişki kurulabilir.
- Bire-Bir (1-1) ilişki
- Bire-Çok (1-n) ilişki
- Çoğa-Bir (n-1) ilişki
- Çoğa-Çok (m-n) ilişki
Oracle Veritabanı Veri Tipleri
Veritabanları tablolardan oluşur ve bu tablolar oluşturulurken gerekli alanların veri tipleri(örneğin hasta numarası için tamsayı, hasta adı için harf… gibi) belirlenmelidir. Oracle veritabanında tanımlanabilecek veri tiplerinden bazıları şöyledir:
- Char(sayı),
- VarChar2(sayı),
- Number(n, p),
- Date,
- Long,
- Raw(sayı),
- LongRaw,
- Clob,
- Blob, • Bfile.
SQL (Yapısal Sorgulama Dili)
Yapısal sorgulama dili veya kısaca SQL(Structured Query Language) veritabanındaki işlemlerin yapılmasına olanak veren bir dildir. Temelde 4 alt ifade grubundan oluşur:
- Veri tanımlama dili (DDL = Data definition language): Bu gruptaki komutlarla tablo, view gibi veritabanı bileşenleri oluşturulur, değiştirilir veya silinir.
- Veri işleme dili (DML = Data manipulation language): Bu gruptaki komutlarla tablo içerikleri eklenir, çıkartılır veya değiştirilir.
- Veri sorgulama dili (DQL = Data query language): Buradaki komutlarla tablo içerisindeki verilerie erişilebilir.
- Veri kontrol dili (DCL = Data control language): Bu gruptakiler komutlarla ise kullanıcılar ve roller için çeşitli bileşenlere erişim yetkisi eklenir veya kaldırılır.
Çeşitli Sorgu Kalıpları
-
CREATE TABLE tablo_adı
(sütun_adı_1 veri tipi,
Sütun_adı_2 veri tipi
…)
Tablo yaratmaya yarar. Sütunları ve sütunların veri tipleri burada belirtilir. -
ALTER TABLE tablo_adı
ADD|MODIFY|DROP(veri tipi)
Tablo yapısında değişiklikler yapmamızı sağlar. -
DROP TABLE tablo_adı[CASCADE CONSTRAINTS];
Tablo silmeye yarar. -
DESC tablo_adı
Tablo yapısını görmek için kullanılır. -
INSERT INTO tablo_adı
VALUES(deger1, deger2, …)
Tabloya veri eklemek için kullanılır. -
HAVING deyimi GROUP BY deyimi ile gruplanan kayıtlar üzerinde kısıtlama yapmayı sağlar. Genel kullanım şekli;
SELECT [DISTINCT|ALL]
FROM
[WHERE <şart(lar)>]
[GROUP BY]
[HAVING]
[ORDER BY]
Tablodaki verilerin istenilen şekilde görüntülenmesini sağlar. -
VIEW (Görünüm)
Görünümler veri tabanında tanımı olan tablolardan sorgulama sonucunda elde edilir. Tabloların tersine fiziksel bir yer tutmazlar.Uygulamalarda pratik imkanlar sağlarlar. View’lerin faydaları;- Tablolardan değişik kullanıcı gruplarına uygun alanların ayrılması sağlanır. Bu da güvenlik açısından önemlidir.
- Birkaç tablodan elde edilen sürekli kullanılan karmaşık sorgulardan view oluşturularak, sürekli hazır tutulur ve her seferinde bu karmaşık sorgu yazılmak yerine view den seçim yapılır.
-
UPDATE tablo_adı
UPDATE tablo_adı
SET sütun_adı_1 = değer1,
sütun_adı_1 = değer1
…
WHERE koşul
Tablo içerisindeki verilerin değiştirilmesi için kullanılır. -
DELETE FROM tablo_adı
WHERE koşul
Tablodaki koşula uyan verilerin silinmesini sağlar. -
SELECT SUM(sütun_adı)
FROM tablo_adı
Belirtilen sütundaki verilerin toplamını verir. -
SELECT AVG(sütun_adı)
FROM tablo_adı
Belirtilen satırdaki verilerin ortalamasını alır. -
SELECT MAX(sütun_adı)
FROM tablo_adı
Belirtilen sütundaki değerlerin en büyüğünü verir. -
SELECT MIN(sütun_adı)
FROM tablo_adı
Belirtilen sütundaki değerlerin en büyüğünü verir. -
SELECT COUNT(sütun_adı)
FROM tablo_adı
Sayma işlemleri için kullanılır. -
SELET [DISTINCT|ALL]
FROM
[WHERE <şart>]
[GROUP BY]
Tablo verilerini gruplamak için kullanılır. -
SELET [DISTINCT|ALL]
FROM
[WHERE <şart>]
[GROUP BY]
[HAVING]
Group by ile oluşturulan grupların üzerine kısaltmalar yapmak için kullanılır. - Eğer birden çok tablo üzerinde bir sorgulama yapılacak ise select sorgusunun içerisinde from kısmından sonra içerikleri getirilecek tablolar aralarına virgül konularak yazılır ve sütun isimleri istenilen tablodan kullanılabilir. Burada dikkat edilecek husus verisi alınacak tabloların en az bir ortak sütunlarının olması ve bu sütunların where kısmında birbirlerine eşitlenerek sorgunun atılmasıdır.
-
CREATE VIEW view_adı AS
SELECT
FROM tablo_adları
Where - Birden çok tablo ile sürekli işlem yapılıyor ise bu komut ile bir view(görünüm) oluşturulabilir. Görünümler fiziksel bir yer tutmazlar. Herhangi bir select sorgusunun sonucunun daha sonra kullanılmak üzere saklanması gibi düşünülebilir. Ayrıca kullanıcılar için tüm tablolara yetki vermektense bu tabloların ilgili sütunları bir view’de toplanarak kullanıcıların görmemesi gereken bilgilere erişimi kısıtlanabilir. Bu da güvenlik açısından önemlidir.
-
CREATE USER kullanıcı adı
IDENTIFIED BY şifre
Yeni kullanıcı yaratmak için kullanılır. -
GRANT DELETE ON tablo adı
TO kullanıcı adı
Kullanıcıya ilgili tablo üzerinde silme yetkisi vermek için kullanılır. -
REVOKE DELETE ON tablo_adı
FROM kullanıcı_adı
Kullanıcıdan ilgili tablo üzerindeki yetkisinin kaldırılması için kullanılır.
Hareket İşleme (Commit ve Rollback Komutları)
Veritabanlarını doğal olarak aynı anda çok sayıda kişi kullanmaktadır. Kullanıcı veri ekleyebilir, veriyi değiştirebilir, hatta silebilir. Verinin değiştirlmesi üzerinde etkili olan DML komutları (insert, update, delete) çalıştırıldığında, veritabanı hareketleri oluşur. Başlayan bir hareket Commit veya Rollback komutu çalıştrılıncaya kadar sona ermez ve sonuçları kalıcı değildir. Bu komutlardan biri veya bir DDL komutu (Create table vb.) çalıştırıldığında da hareket sona erer.
Örneğin Hastalar tablosuna insert komutu ile yeni bir hasta ekledikten sonra,
Commit;
yazarak eklenen veriyi veritabanında kalıcı hale getiririz. Veya eklenen veriyi kalıcı hale getirmeden, ekleme işlemini iptal etmek istersek,
Rollback;
komutunu yazmalıyız.