Öğretici: Azure Data Studio (ADS) kullanarak Azure SQL Veritabanı'de ilişkisel veritabanı tasarlama
Şunlar için geçerlidir: Azure SQL Veritabanı
Azure SQL Veritabanı, Microsoft Bulutu'ndaki (Azure) bir hizmet olarak ilişkisel veritabanıdır (DBaaS). Bu öğreticide, Azure portalını ve Azure Data Studio'yu (ADS) kullanarak şunları yapmayı öğreneceksiniz:
- Azure Data Studio ile veritabanına bağlanma
- Azure Data Studio ile tablo oluşturma
- BCP ile toplu veri yükleme
- Azure Data Studio ile verileri sorgulama
Not
Bu öğreticinin amacı doğrultusunda Azure SQL Veritabanı kullanıyoruz. Elastik havuzda veya SQL Yönetilen Örneği havuza alınan bir veritabanı da kullanabilirsiniz. bir SQL Yönetilen Örneği bağlantı için şu SQL Yönetilen Örneği hızlı başlangıçlarına bakın: Hızlı Başlangıç: Azure VM'yi Azure SQL Yönetilen Örneği bağlanacak şekilde yapılandırma ve Hızlı Başlangıç: Bir noktadan siteye bağlantı yapılandırma Şirket içinden Azure SQL Yönetilen Örneği.
Önkoşullar
Bu öğreticiyi tamamlamak için şunları yüklediğinizden emin olun:
- Azure Data Studio (en son sürüm)
- BCP ve SQLCMD (en son sürüm).
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Henüz oluşturulmuş bir Azure SQL Veritabanı yoksa Hızlı Başlangıç: Tek bir veritabanı oluşturma'yı ziyaret edin. Teklifinizi kullanarak Azure SQL Veritabanı ücretsiz (önizleme) deneme seçeneğine bakın.
Azure portalda oturum açma
Azure Portal’ında oturum açın.
Sunucu düzeyinde IP güvenlik duvarı kuralı oluşturma
Azure SQL Veritabanı sunucu düzeyinde bir IP güvenlik duvarı oluşturur. Bu güvenlik duvarı, bir güvenlik duvarı kuralı güvenlik duvarı üzerinden IP'lerine izin vermediği sürece dış uygulamaların ve araçların sunucuya ve sunucudaki veritabanlarına bağlanmasını engeller. Veritabanınıza dış bağlantıyı etkinleştirmek için önce IP adresiniz (veya IP adresi aralığı) için bir IP güvenlik duvarı kuralı eklemeniz gerekir. Sunucu düzeyinde ip güvenlik duvarı kuralı oluşturmak için bu adımları izleyin.
Önemli
Azure SQL Veritabanı, 1433 numaralı bağlantı noktası üzerinden iletişim kurar. Şirket ağı içinden bu hizmete bağlanmaya çalışıyorsanız, ağınızın güvenlik duvarı tarafından 1433 numaralı bağlantı noktası üzerinden giden trafiğe izin verilmiyor olabilir. Bu durumda, yöneticiniz 1433 numaralı bağlantı noktasını açmadığı sürece veritabanınıza bağlanamazsınız.
Dağıtım tamamlandıktan sonra Azure portalı menüsünden SQL veritabanları'nı seçin veya herhangi bir sayfadan SQL veritabanlarını arayın ve seçin.
SQL veritabanları sayfasında Veritabanınızı seçin. Veritabanınızın genel bakış sayfası açılır ve size tam Sunucu adını (örneğin
contosodatabaseserver01.database.windows.net
) gösterir ve daha fazla yapılandırma için seçenekler sağlar.Sql Server Management Studio'dan sunucunuza ve veritabanlarınıza bağlanmak için bu tam sunucu adını kopyalayın.
Ayarlar'ın altında Ağ'ı seçin. Genel Erişim sekmesini seçin ve ardından Güvenlik duvarı kuralları bölümünü görüntülemek için Genel ağ erişimi'nin altında Seçili ağlar'ı seçin.
Geçerli IP adresinizi yeni bir IP güvenlik duvarı kuralına eklemek için araç çubuğunda İstemci IPv4'ünüzü ekle'yi seçin. IP güvenlik duvarı kuralı, tek bir IP adresi veya ip adresi aralığı için 1433 numaralı bağlantı noktasını açabilir.
Kaydet'i seçin. Geçerli IP adresiniz için sunucuda 1433 numaralı bağlantı noktasını açan bir sunucu düzeyinde IP güvenlik duvarı kuralı oluşturulur.
Tamam'ı seçin ve güvenlik duvarı ayarları sayfasını kapatın.
IP adresiniz artık IP güvenlik duvarından geçebilir. Artık SQL Server Management Studio'yu veya tercih ettiğiniz başka bir aracı kullanarak veritabanınıza bağlanabilirsiniz. Daha önce oluşturduğunuz sunucu yöneticisi hesabını kullandığınızdan emin olun.
Önemli
Varsayılan olarak, SQL Veritabanı IP güvenlik duvarı üzerinden erişim tüm Azure hizmetleri için etkinleştirilir. Tüm Azure hizmetlerinde devre dışı bırakmak için bu sayfada KAPALI'ya tıklayın.
Veritabanına bağlanın
Veritabanınızla bağlantı kurmak için Azure Data Studio'yu kullanın.
Azure Data Studio'yu açın.
Yeni bir bağlantı oluşturmak için Nesne Gezgini Yeni Bağlantı'ya aşağıdaki bilgileri girin. Diğer seçenekleri varsayılan olarak bırakın.
Ayar Önerilen değer Açıklama Bağlantı türü Microsoft SQL Server Bu değer gereklidir. Sunucu adı Tam Azure SQL Veritabanı mantıksal sunucu adı Örneğin, your_logical_azure_sql_server.database.windows.net
.Kimlik doğrulaması türü SQL Server Kimlik Doğrulaması Kullanıcı adı ve parola girmek için SQL Server Kimlik Doğrulamasını kullanın. Microsoft Entra doğrulaması Microsoft Entra Id kullanarak bağlanmak için, Microsoft Entra sunucu yöneticisiyseniz Microsoft Entra ID - MFA desteğiyle Evrensel'i seçin. Daha fazla bilgi için bkz. Azure SQL ile Microsoft Entra kimlik doğrulamasını yapılandırma ve yönetme. Oturum açma Sunucu yöneticisi hesabı Sunucuyu oluştururken belirttiğiniz hesap. Parola Sunucu yöneticisi hesabınızın parolası Sunucuyu oluştururken belirttiğiniz parola. Bağlan'ı seçin. Nesne Gezgini penceresi ADS'de açılır.
Nesne Gezgini'da Veritabanları'nı genişletin ve ardından veritabanınızı genişleterek örnek veritabanındaki nesneleri görüntüleyin.
Nesne Gezgini'deVeritabanınıza sağ tıklayın ve Yeni Sorgu'yu seçin. Veritabanınıza bağlı boş bir sorgu penceresi açılır.
Veritabanınızda tablo oluşturma
Azure Data Studio'da Tablo Tasarımcısı'nı kullanarak üniversiteler için öğrenci yönetim sistemini modelleyen dört tablo içeren bir veritabanı şeması oluşturun:
Person
Course
Student
Credit
Aşağıdaki diyagramda bu tabloların birbirleriyle nasıl ilişkili olduğu gösterilmektedir. Bu tablolardan bazıları başka tablolardaki sütunlara başvurur. Örneğin, Student
tablo tablonun sütununa başvurur PersonId
Person
. Bu öğreticideki tabloların birbirleriyle ilişkisini anlamak için diyagram üzerinde çalışın. Etkili normalleştirilmiş veritabanı tabloları oluşturma hakkında ayrıntılı bilgi için bkz . Normalleştirilmiş Veritabanı Tasarlama. Veri türleri seçme hakkında bilgi için bkz. Veri türleri. Varsayılan olarak, tablolar varsayılan dbo
şemada oluşturulur; yani tablonun iki bölümden oluşan adı gibi olur dbo.Person
.
Nesne Gezgini, Bu veritabanında depolanan tüm işlemlerin açılan menüsünü genişleten Veritabanınızı seçin, Tablolar klasörüne sağ tıklayın ve Yeni Tablo'yu seçin. Veritabanınıza bağlı boş bir Tablo Tasarımcısı açılır.
Veritabanınızda bu dört tabloyu oluşturmak için Tablo Tasarımcısı arabirimini kullanın. Tablo Tasarımcısı'nı kullanarak tablo oluşturma hakkında daha fazla bilgi edinmek için Tablo Tasarımcısı belgelerine bakın :
Kişi Tablosu
Aşağıda gösterildiği gibi Kişi Tablosu için Birincil Anahtar ayarlarını yapılandırıldığından emin olun:
Öğrenci Tablosu
Aşağıda gösterildiği gibi Öğrenci Tablosu için Birincil Anahtar ayarlarını yapılandırıldığından emin olun:
Öğrenci Tablosu için Yabancı Anahtar ayarlarını aşağıda gösterildiği gibi yapılandırıldığından emin olun:
Kurs Tablosu
Aşağıda gösterildiği gibi Kurs Tablosu için Birincil Anahtar ayarlarını yapılandırıldığından emin olun:
Kredi Tablosu
Aşağıda gösterildiği gibi Kredi Tablosu için Yabancı Anahtar ayarlarını yapılandırıldığından emin olun:
Aşağıda gösterildiği gibi Kredi Tablosu için Denetim Kısıtlaması ayarlarını yapılandırıldığından emin olun:
Dört yeni tabloyu oluşturmak için T-SQL kullanmayı tercih ediyorsanız, işte yeni sorgu penceresinde yürütülecek T-SQL.
-- Create Person table CREATE TABLE Person ( PersonId INT IDENTITY PRIMARY KEY, FirstName NVARCHAR(128) NOT NULL, MiddelInitial NVARCHAR(10), LastName NVARCHAR(128) NOT NULL, DateOfBirth DATE NOT NULL ) -- Create Student table CREATE TABLE Student ( StudentId INT IDENTITY PRIMARY KEY, PersonId INT REFERENCES Person (PersonId), Email NVARCHAR(256) ) -- Create Course table CREATE TABLE Course ( CourseId INT IDENTITY PRIMARY KEY, Name NVARCHAR(50) NOT NULL, Teacher NVARCHAR(256) NOT NULL ) -- Create Credit table CREATE TABLE Credit ( StudentId INT REFERENCES Student (StudentId), CourseId INT REFERENCES Course (CourseId), Grade DECIMAL(5,2) CHECK (Grade <= 100.00), Attempt TINYINT, CONSTRAINT [UQ_studentgrades] UNIQUE CLUSTERED ( StudentId, CourseId, Grade, Attempt ) )
Oluşturduğunuz dört yeni tabloyu görmek için Nesne Gezgini Veritabanınızın altındaki Tablolar düğümünü genişletin.
Tablolara veri yükleme
Veritabanınıza yönelik örnek verileri depolamak için yerel iş istasyonunuzda sampleData adlı bir klasör oluşturun İndirilenler klasörü. Örneğin,
c:\Users\<your user name>\Downloads
.Aşağıdaki bağlantılara sağ tıklayın ve bunları sampleData klasörüne kaydedin.
Yeni bir Windows komut istemi penceresi açın ve sampleData klasörüne gidin. Örneğin,
cd c:\Users\<your user name>\Downloads
.Sunucu, veritabanı, kullanıcı ve parola değerlerini ortamınızın değerleriyle değiştirerek tablolara örnek veri eklemek için aşağıdaki
bcp
komutları yürütebilirsiniz.bcp Course in SampleCourseData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t "," bcp Person in SamplePersonData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t "," bcp Student in SampleStudentData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t "," bcp Credit in SampleCreditData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
Daha önce oluşturduğunuz tablolara örnek veriler yüklediniz.
Verileri sorgulama
Veritabanı tablolarından bilgi almak için aşağıdaki T-SQL sorgularını yürütebilirsiniz.
Bu ilk sorgu, 'Dominick Pope' tarafından öğretilen ve %75'ten yüksek nota sahip öğrencileri bulmak için dört tabloyu da birleştirir. Sorgu penceresinde aşağıdaki T-SQL sorgusunu yürütebilirsiniz:
-- Find the students taught by Dominick Pope who have a grade higher than 75%
SELECT person.FirstName, person.LastName, course.Name, credit.Grade
FROM Person AS person
INNER JOIN Student AS student ON person.PersonId = student.PersonId
INNER JOIN Credit AS credit ON student.StudentId = credit.StudentId
INNER JOIN Course AS course ON credit.CourseId = course.courseId
WHERE course.Teacher = 'Dominick Pope'
AND Grade > 75;
Bu sorgu dört tablonun tümünü birleştirir ve 'Noe Coleman' adlı veritabanının kayıt yaptırdığı kursları bulur. Sorgu penceresinde aşağıdaki T-SQL sorgusunu yürütebilirsiniz:
-- Find all the courses in which Noe Coleman has ever enrolled
SELECT course.Name, course.Teacher, credit.Grade
FROM Course AS course
INNER JOIN Credit AS credit ON credit.CourseId = course.CourseId
INNER JOIN Student AS student ON student.StudentId = credit.StudentId
INNER JOIN Person AS person ON person.PersonId = student.PersonId
WHERE person.FirstName = 'Noe'
AND person.LastName = 'Coleman';
İpucu
SQL sorguları yazma hakkında daha fazla bilgi edinmek için Öğretici: Transact-SQL deyimleri yazma bağlantısını ziyaret edin.
İlgili içerik
- Öğretici: Azure SQL Veritabanı'da ilişkisel veritabanı tasarlama
- Azure SQL Veritabanı ücretsiz deneyin (önizleme)
- Azure SQL Veritabanı'daki yenilikler
- İçerik başvurularını yapılandırma ve yönetme - Azure SQL Veritabanı
- Azure SQL Veritabanı maliyetlerini planlama ve yönetme
İpucu
.NET uygulaması geliştirmeye başlamaya hazır mısınız? Bu ücretsiz Learn modülü, basit bir veritabanı oluşturma dahil olmak üzere bir Azure SQL Veritabanı sorgulayan bir ASP.NET uygulaması geliştirmeyi ve yapılandırmayı gösterir.
Sonraki adım
Visual Studio ve C# kullanarak veritabanı tasarlama hakkında bilgi edinmek için sonraki öğreticiye geçin.