テクノパークの講義。 2学期。 データベース





定期コラム「テクノパークの講義」のフレームワークの別の投稿。 今回は、データベースに関する講義に注目します。 コースの目標は、学生にリレーショナルデータベース設計、データベースの効率的な作業、クエリの最適化とデータスキーム、高負荷プロジェクトでのデータベースの使用、および/または大規模なデータアレイ、noSQL、および適用される解決のためのアプリケーションの機能の研究に関する知識を提供することですwwwのタスク。



講義1.設計の紹介と開始



講義では、ITにおけるデータベースの意味と役割について説明し、データベースとDBMSを定義します。 次に、リレーショナルデータモデル、リレーショナル代数の基礎について説明します。 以下は、データベース設計を直接参照しています。データモデル、概念設計の機能、設計段階、論理設計とは何かを評価するための基準は何ですか。 講義の残りの部分では、MySQLデータ型(NULL、整数、浮動小数点数、バイナリ、文字列、日付と時刻)に焦点を当てます。







講義2.データの修正。 データサンプリング(開始)



最初に、MySQLデータ型「日付と時刻」の検討が終了します。 次に、テーブルの作成(CREATE TABLE)について説明します:create_definition、column_definition、reference_defenition、親リレーションのタプルの更新。 以下では、テーブル変更手順(ALTER TABLE)、データサンプリング、SELECTステートメント、およびフィルタリング(グループ化、アグリゲーター)について説明します。







講義3.データのサンプリング(続き)。 取引



講義は、データとINSERTステートメントの追加、データとUPDATEステートメントの更新、データとDELETEステートメントの削除に関するストーリーから始まります。 次に、講義のごく一部をユーザー変数に専念します。 その後、サブクエリに関する情報が提供されます:サブクエリ、行サブクエリ、FROMのサブクエリ。 以下は、集約(UNION)、JOINファミリーの関数と結合テーブル、および講義の最後-VIEWの概念(利点、制限、機能、使用および変更のアルゴリズム)についてです。







講義4.データベースを扱う高度な機能。 トリガーとストアドプロシージャ



講義の最初の部分は、ストアドプロシージャ(使用法、コード例、ストアドプロシージャを使用する場合のセキュリティの側面)に専念します:LOOP、REPEAT、WHILE、HANDLER、cursors、EXECUTE。 2番目の部分では、トリガーについて説明します。BEFORE、AFTER、INSTEAD OF、特別な挿入、更新、削除されたテーブル、整合性とビジネスロジックを維持するトリガーの使用、トリガーの使用に関する問題、およびコード例。 講義の最後の部分では、トランザクションに関連する問題について説明します。ACIDの概念。 分離レベルANSI / ISO(トランザクション分離レベルの設定); トランザクションの相互作用と問題により、更新、ダーティリード、繰り返し不可のリード、ファントムリードが失われます。 MVCCテクノロジー(競合バージョン管理); 競争 並列性と一貫性。







講義5.ボトルネックの特定



最初に、ストレージサブシステムについて説明します:MyISAM、InnoDB、Memory、ストレージサブシステムを選択する基準について、実用的な例を示します。 次に、インデックスのトピック(Bツリー、ハッシュインデックス)とEXPLAIN(列ID、テーブル、possible_keys、キー、key_len)について説明します。







講義6.クエリのプロファイリング。 高度なSQLクエリ



講義の冒頭で、クエリのプロファイリングとは何か、MySQLでのクエリの実行段階について説明します。 リクエストの計画方法、リクエストのロギングの実行方法、および統計の収集方法を示します。 インデックス作成の基本について説明し、高いパフォーマンスを実現するためのインデックス作成戦略について詳しく説明します。列の分離、クラスターインデックス(長所と短所)、MyISAMでのデータ配置、インデックスをカバーするInnoDBです。 次に、正規化と非正規化のトピック、およびカウンターテーブルについて説明します。 最後に、データベーススキーマのバージョン管理について説明します。インクリメンタルな変更、べき等の変更、データベース構造をソースコードにたとえる方法について説明します。







講義7.クエリの最適化とインデックス作成



まず、データアクセスの最適化、接続の分解、およびステータスのクエリについて説明します。 次に、クエリオプティマイザー専用の大きなブロック(結合順序の変更、同値の代数規則の適用、COUNT()、MIN()、MAX()の最適化、定数式の計算と畳み込み、インデックスのカバー、サブクエリの最適化、早期完了、INリストによる比較()および平等の広がり)。 次に、MySQLでの結合(JOIN)、オプティマイザーの並べ替え、相関サブクエリ、マージと一貫性のないインデックススキャン、SELECT&UPDATE、COUNT()などの側面が順次考慮されます。 その後、オフセット付きのJOIN、GROUP BY、DISTINCT、およびLIMITを使用したクエリの最適化について説明します。 講義の最後に、クエリのキャッシュ、結合テーブル、およびパーティション化に関する情報が提供されます。







講義8.データベース構成



最初に、構成の基本と構成の一般原則について説明します。 以下では、スコープ、メモリ使用量の設定、およびkey_cache_block_sizeキーブロックのサイズについて説明します。 InnoDBキャッシュの設計と使用、およびスレッドとテーブルキャッシュについて説明します。 次に、InnoDBのI / O機能について説明します。 以下では、表スペース、ファイルソートの最適化、および状態変数について説明します。 講義の最後の部分は、レプリケーション、チューニング、同期、トポロジ、帯域幅の計画、管理とメンテナンス、問題とその解決策に専念します。







講義9.データベースのセキュリティ



講義は、バックアップに関するストーリー(論理的および物理的バックアップ、バックアップするデータの選択に関するストーリー)で始まります。 次に、さらなる問題を議論するための用語が決定されます。 その後、アカウントの基本、アクセステーブル、権限、エントリの種類が考慮されます。 SQLインジェクション、隣接セットリスト、ネストされたセット、マテリアライズドパス、および複合アプローチについて説明します。







講義10.非リレーショナルデータベースソリューション-NoSQL



導入部は、NoSQLコンセプトの開発の定義と歴史に専念します。 特性が与えられ、使用方法が説明されています。 NoSQLの理論的基礎であるNoSQLデータベースの種類を調べ、講義の最後に、NoSQLソリューションの欠点について説明し、さまざまなNoSQLソリューションを比較します。







以前の問題:



テクノパークのYouTubeチャンネルに登録しましょう!



All Articles