Kategoriler


SON YORUMLAR
Huriye Feyza Kurt
Bilgisayar mühendisliği daha önce, bu kadar bilgisizce yazılan bir yazı okumadım.
Ercan Sezdi
Elektrik Elektronik Mühendisliği okuyorum. C++ ve Python ödevleri yapabilirim. iletişim:ercansezdizero@gmail.com
Kaan
Saü bilgisayar mühendisliğinde okuyorum birkaç dersten mezuna kaldım. Java, Android, C++, Web programlama ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaan8792 adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141
Eren
Tama Güzel Bilgisayar Mühendisliği Iyide Yazılım Gerekiyormu Yoksa Önce Yazılım Bitiripdemi Gitmeliyiz Bilgisayar Mühendisliğine Yada Orda Yazılımda Öğerenebilirmiyiz Yani Tek Soru Bu Kafamda
murat yılmaz
10 parmakla ne alakası var. Eğitimini almadı ise zaten yazamaz 10 parmak ( f klvaye ) . bence sen 10 parmak yazanlara büyük kıskançlık ile bakıyorsun. bu arada 10 parmak öğretim değlidir, eğitimdir. kıskanacına git eğitimini al. böyle kıskançlık yazıları yazmakla olmuyor o işler.
Ercan Sezdi
Elektrik Elektronik Mühendisliği Bölümünde okumaktayım. İyi derecede Python, Orta derecede C++ bilmekteyim. Programlama ödevlerinizi makul ücretler karşılığında yapabilirim. iletişim: ercansezdi007@gmail.com
Seyfullah
Android, ASP.NET-MVC, HTML-CSS PHP ödevleri, masaüstü, mobil ve web uygulamaları yapılır. Bilgi için; seyf.uur@gmail.com
İsim yazmayayım da elektronikteydim aynı yurttaydk
Oha la çomak agama bak yazılar yazmış, sizin odadaki eleman hırsızlık yapıyordu demi :) Vay be kaç sene geçmiş soyadını bile tam hatırlayamadım görünce ama çağrıştırdı sonra baktım yıldızdayım yazmışsın. Telefonunun falan gitti. Github hesabından iletişim kurmanın yollarını arayacağım artık. Bu arada benim önerim kesinlikle ailenizin yanında okuyun.

Eline diline sağlık çok aydınlatıcı olmuş
Mami
Yazılanlar doğru çünkü bu iş şirketle alakalı devlet az verir ama şirket istediği kadar ve sizin basarinizA göre
Kaan
Saü bilgisayar mühendisliğinde okuyorum birkaç dersten mezuna kaldım. Java, Android, C++, Web programlama ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaan8792 adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141
Kaan
Saü bilgisayar mühendisliğinde okuyorum birkaç dersten mezuna kaldım. Java, Android, C++, Web programlama ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaan8792 adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141
Barış Meral
Merhaba ben Barış M. Java SE ve EE geliştiricisiyim. Her türlü seviyeye uygun bitmiş halde olarak, C, C++, C# ve java ile ilgili projeler/ödevler yapılır. bunun yanında Veritabı olarak, MySQL,MSSQLServer, Access ve SQLite etkili kullanıyorum.Web Bölümü için HTML5,CSS3,JavaScript yapılarına hakimim, BackEnd Olarak JSP kullanıyorum her türlü soru için posta adresim: barismeral.net@hotmail.com
Kanaatkar
Yeter Allah bin bereket vesin

Bilgisayar Mühendisleri
Here is the website inspired me to use 
it as a guide when I tried to define 
myself as an engineer candidate a few 
years ago. It really helped me to work
 and study feeling in confidence with 
being on the right way. I suggest this 
website to whom it may direct her/his 
to find the right career path. It 
includes many articles varies from 
real life experiences to detailed 
software engineering issues. But the 
most dignified parts for me are the 
articles in general and career titles.
Son okunan makaleler:
Oracle - Data Integrity (Veri Bütünlüğü)
2016 ekonomik krizi
Staj Yeri Nasıl Bulunur? Staja hazırlık olarak neler yapmalıyım?
Online Java Dersleri - Java NEDİR?
Bir bilgisayar mühendisinin bilmesi gereken en temel teknolojiler
Bilgisayar Mühendisleri Kaç Para Alır?
Bilgisayar Mühendisleri Kaç Para Alır?
Vakıf üniversiteleri
DataGrid ve GridView Kontrollerinde Görünmez Kolonlar
ViewState’in Sunucuda Saklanması
Vakıf üniversiteleri
Bilgisayar Mühendisleri Kaç Para Alır?
Bilgisayar Mühendisleri Kaç Para Alır?
NHibernate için Veri Erişim Katmanını Otomatik Oluşturma
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
Transact-SQL - T-SQL - SQL NEDİR?
Transact-SQL - T-SQL - SQL NEDİR?
Bilgisayar Mühendisi olacaklara üniversite seçme rehberi?
Bilgisayar Mühendisleri Kaç Para Alır?
YAZILIM BÜYÜKLÜK TAHMİNİ

Bilgisayar Mühendisleri Portalı

Oracle - Data Integrity (Veri Bütünlüğü)

 

Uygulamalarımızda veri bütünlüğümüzü sağlamak, bozuk tutarsız verilerin girişini ya da mevcut bilgilerin üzerinde değişiklik yaparken bozulmasını engellemek isteriz.Bunu sağlamak için önceden bir takım kurallar tanımlamak durumundayız.Bunu aşağıdaki gibi bir örnekle kısaca açıklayalım :

integrity

“emp” tablosunda çalışan bilgileri , “dept” tablosunda da çalışılan bölüm bilgileri tutulmaktadır.EMP tablosunda empno alanının tek olması, ename alanının boş olmaması, sal alanını 10.000 den küçük olması, deptno alanının dept tablosunda muhakkak bir karşılığının olması, dept tablosunda da dname alanının dolu olması şartlarını sağlamak isteyebiliriz.Tüm bunlar verimizin bütünlüğünü ve tutarlılığını garanti altına almak için konulan kurallardır.
Veri tutarlılığını, bütünlüğünü sağlamak için kullanılan kuralları aşağıdaki gibi özetlemek mümkün :

NULL Kuralı(NULL Rule) : Bir kolon üzerinde update ya da insert işlemi olduğunda bu kolonun NULL olabilir ya da NULL olamaz kontrolüdür.

Tek değerli Kolon Kuralı (Unique Column Rule) : Bu kural ile bir kolonun (ya da kolon grubunun) tek bir deger alması sağlanabilir. Anahtar Değer Kuralı(Primary Key Rule) : Bir tabloda anahtar değer olarak tek değer içermesi istenen kolon ya da kolonlar grubudur.

Referential Integrity Rules : Kısaca , bir kolonun karşılığının diğer bir tabloda bulunması zorunluluğudur.Kendi içinde çeşitleri vardır.Referans olan verinin silinmesi ya da değişirilmesini engelleyebilir, update edildiğinde ya da silindiğinde NULL a set edilmesini sağlayabilir , bu verinin silinmesi ya da değiştirlmesi durumunda cascade olarak bağlı tüm verinin silinmesini ya da değiştirilmesini sağlayabilirsiniz.Özellikle “Referential Integrity” en cok kullanılan kurallardandır.

Oracle ın desteklediği kurallar aşağıdaki şekilde özetlenebilir :
         NOT NULL kısıtı (constraint)
         UNIQUE kısıtı (constraint)
         PRIMARY KEY kısıtı (constraint)
         CHECK kısıtı (constraint) à Karmaşık kurallar içeren kısıtlarda kullanılır.
         FOREIGN KEY kısıtı (constraint).Bu kısıt aynı zamanda Referential Integrity kapsamındadır.Bunun içersinde update,delete no action – delete cascade ve delete set null özellikleri bulunur.

Şimdi bunları daha detaylı olarak inceleyelim :
 

NOT NULL integrity constraint : Bu kısıt ile bir kolonun muhakkak bir deger almasını sağlayabiliriniz.Bunu tablo olustururken ya da tablo oluşturduktan sonra ALTER TABLE ile sağlayabilirsiniz :
Create table t (id number,
  str varchar2 not null);
Alter table t modify str null;
 

UNIQUE key integrity constraint : Bu kısıt ile bir ya da daha fazla kolonu içine alacak şekilde aynı tabloda bu kolon ya da kolonların birlikte aynı değeri alan 2. bir kayıt olması engellenmiş olur.
Ektradan NOT NULL kısıtı olmadıgı sürece uniqueu key kısıtında null değer girilebilir. Bunu tablo olustururken ya da tablo oluşturduktan sonra ALTER TABLE ile sağlayabilirsiniz ya da kaldırabilirsiniz.(Birden fazla kolon üzerinde oluşturulursa “composite unique key” denir.)

Create table t (id number,
  str varchar2
  unique str);

Alter table t drop constraint sys_c001463;

Alter table t add  constraint t_str_uni;

Bu kısıt oluşturuldugunda oracle unique index oluşturur.
 

Primary key integrity constraint :  Unique key kısıtına benzese de farklıdır.Primary key null deger alamaz ve tablo da en fazla bir tane primary key kısıtı olabilir.Ortak ozelliği tanımlı kolon ya da kolonlar için aynı degerde satırlar olamaz.

Create table t(id number primary key,Str varchar2)

Primary key oluşturma durumunda T tablosunda id kolonu için hem unique index oluşturulur hem de id kolonu için not null kısıtı oluşturulur.
 

Referential Integrity Constraints : Öncelikle aşağıda geçen terimleri iyi anlamak gerekiyor.
Foreign key : Kolon ya da kolonlar grubu olabilir.Referans verilen anahtarı(refrenced key) gösterir.
Referenced key : Foreign key tarafında referans verilen aynı ya da farklı tablodaki primary key ya da unique keylerdir.
(Depended = child ) table : foreign key barındıran tablodur.
(Referenced = parent) table : foreign key in gösterdiği alanın bulundugu tablodur.

Foregin key parent tabloda bir parent key ile eşleşmelidir.Ama not null kısıtı yok ise NULL değer içerebilir.Parent tablo ile child tablonun aynı da olabilir.(Self Integrity Constraints) Referenced parent key değeri üzerinde bir değişiklik ya da silinme durumu olduğunda otomatik olarak bazı işlemlerin yapılması sağlanabilir.Referenced parent key silinme teşebbüsünde varsayılan olarak buna izin verilmez.Ama delete cascade opsiyonu ile parent tabloda bulunan değer silinince child tabloda bulunan bu değerdeki tüm kayıların silinmesi sağlanabilir ya da NULL değer verilebilir.

Parent key hiç bir zaman update ya da delete görmüyorsa index konulmaz, diğer durumlarda foreign key üzerinde index oluşturmalıdır.Index olmadıgı durumda parent tablo uzerinde yapılan bir update işleminde tüm child tabloya lock konulması soz konusu olacaktır.Bu da child tablo üzerinde yapılacak DML işlemlerinin bekletilmesi anlamına gelecektir.
 

Check integrity constraints : Kolon ya da kolonlar üzerinde belli bir durumu sağlayıp sağlamaması durumuna göre konulan kısıtlardır.Bazı koşulları sağlaması gerekir.Şöyleki check kısıt view lar üzerinde tanımlanamaz, boolean bir değer üretmelidir, subquery ve sequence içeremez, sysdate gibi SQL fonksiyonları kullanılamaz, level – rownum gibi pseudocolumn lar içeremez.Örnekler :

CREATE TABLE suppliers (
supplier_id numeric(4),
supplier_name varchar2(50),
CONSTRAINT check_supplier_id CHECK (supplier_id BETWEEN 100 and 9999)
);

CREATE TABLE dept(
   deptno NUMBER(2) CONSTRAINT pk_dept PRIMARY KEY,
   CONSTRAINT ck_deptno CHECK (deptno BETWEEN 10 and 99),
   dname VARCHAR2(9),
   CONSTRAINT ck_dname CHECK (dname=UPPER(dname)),
   loc VARCHAR2(10) CONSTRAINT ck_loc CHECK (loc IN(’DALLAS’,’BOSTON’,’CHICAGO’))
)

CREATE TABLE emp (
   empno NUMBER(4) CONSTRAINT pk_emp PRIMARY KEY,
   ename VARCHAR2(10),
   job VARCHAR2(9),
   hiredate DATE,
   sal NUMBER(7,2),
   comm NUMBER(7,2),
   deptno NUMBER(2),
   CONSTRAINT fk_deptno FOREIGN KEY (deptno) REFERENCES dept(deptno),
   CONSTRAINT ck_total CHECK (sal + comm <=5000)
)

NOT :
1) Tüm bu kısıtlar Oralce SQL i çalıştırdıktan sonra kontrol edilir.

2) Kolonların varsayılan değerleri bir insert gibi işlem görür ve tüm kısıtlara tabidirler.

 Hakkı Oktay
http://hakkioktay.wordpress.com

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın




Copyright© 2001-2019. Bilgisayar Mühendisleri Portalı | Bütün hakları saklıdır.