質問 1 (15 点)
新エネルギー車会社は効率を向上させるために、自動車部品の調達システムを開発する必要があります。システムのデータベース設計を完了してください。
概念的な構造設計
要件の説明
(1) サプライヤーの名前、住所、電話番号などのサプライヤー情報を記録します。
(2) 部品のコード、名称、価格などの部品情報を記録します。
(3) モデルのシリアル番号、名前、仕様などのモデル情報を記録します。
(4) 部品の調達情報を記録する あるモデルの特定の部品を複数のサプライヤーから購入することができ、ある部品を複数のモデルで使用することもでき、また、特定のサプライヤーが複数の部品を供給することもでき、購入数量や購入日も含めて記録します。
論理構造設計
概念構造設計段階で完成したエンティティ関連図によれば、次のような関係モデル(不完全)が得られます。
- サプライヤー (名前、住所、電話番号)
- 部品(コード、名前、価格)
- 型式(番号、名称、仕様)
- 購入(型番、購入者名、(a)、(b)、購入日)
質問1(5点)
説明に従って、上図のエンティティ接続図を補足します (新しいエンティティは追加されません)。
質問 2 (3 点)
論理構造設計結果の 2 つの空き (a) と (b) を補足し、主キーと外部キーの整合性制約をマークします。
問3(7点)
自動車会社は、全国の店舗でのモデルの販売を記録するという要件を追加しました。店舗情報には店舗番号、住所、電話番号が含まれ、売上には販売数量と販売日が含まれます。この要件を達成するために、元の設計に次の変更が加えられました。
(1) 店舗情報とそのモデル売上を図に示し、新しく追加されたエンティティと接続、およびそれらの重要な属性をマークします。
(2) 新しく追加された関係スキーマを指定し、主キーと外部キーの整合性制約をマークします。
質問 2 (15 点)
自動車メーカーは補修部品を一元管理し、対応するデータベースを構築しており、そのデータベースには補修部品の使用情報が記録されています。そのテーブル構造は次のとおりです。
- 修理部品使用リスト(ナンバープレート番号、修理時期、部品コード、部品名、部品サプライヤー、部品倉庫コード、倉庫住所、修理部品の数量)。
その中でも、ナンバープレート番号と付属品コードは独自性を満たします。同じ車両が同じメンテナンス状況で複数の修理部品を必要とする場合を想定すると、1 種類のスペアパーツは 1 つのスペアパーツ倉庫にのみ保管でき、1 種類のスペアパーツは 1 つのスペアパーツサプライヤーのみが提供できます。修理時間は秒単位で正確です。
問1(7点)
質問にある補修部品使用表にデータの冗長性がありますが、具体的な冗長性の属性と、それによりどのような異常が発生するのかを説明してください。
問2(8点)
スペアパーツ使用テーブルは BCNF を満たしていますか? 満たしていない場合は、分解されたリレーショナル スキーマが BCNF を満たすようにスキーマを分解し、主キーと外部キーをマークしてください。
質問 3 (15 点)
教育行政管理システムのデータベース リレーショナル スキーマの一部は次のとおりです。
- Student: STUDENT( Sno、 Sname、 Ssex、 Sage、 Sdept)、各属性は学生番号、名前、性別、年齢、学部名を表します。
- Course: COURSE ( Cno、 Cname 、 Cpno 、 Ccredit)、各属性は、前提条件コースのコース番号、コース名、コース番号、単位を表します。
- コース選択: SC( Sno、Cno、 Grade)、各属性はそれぞれ学生番号、コース番号、グレードを表します。
リレーショナル スキーマの説明は次のとおりです。
(1) 下線付きの属性がテーブルの主キーです
(2) コース名の値は一意です。
上記の説明に従って、次の質問に答えて、SQL ステートメントの空の部分を完成させてください。
質問 1 (3 点)
以下のコース テーブル COURSE を作成するための SQL ステートメントを完成させてください。これには、エンティティ整合性制約、参照整合性制約、およびその他の整合性制約の定義が必要です。
テーブル作成コース(
Cno CHAR(4) 主キー、
Cname CHAR(30) ( a ),
Cpno CHAR(4) 参照 ( b )、 ( c )
クレジットINT
);
質問 2 (4 点)
コース番号「C036」の新しいコースがあり、すべての学生が受講する必要があります。このコースの基本情報はカリキュラム表 COURSE に入力されていますので、このコースのコース選択記録をコース選択表 SC に挿入する必要があります。この機能を実現するためのSQL文は以下の通りですので、完成させてください。
( d ) INTO SC(Sno, ( e ))
値を選択 Sno,( f ) FROM ( g )
質問 3 (4 点)
各科目の間接前提科目(前提科目の前提科目)を問い合わせ、科目番号と間接前提科目の科目番号の出力を要求します。コースに前提条件がなくても、間接的な前提条件が空の場合でも、出力は必要です。この機能は以下のSQL文で実現しますので完成させてください。
SELECT K1.Cno,( h )
コース K1 ( i ) からの外部結合コース K2 ( j ) (( k ) );
問4(4点)
科目選択表の全科目を履修した学生を問い合わせ、学生番号と氏名を出力してもらいます。この機能は以下のSQL文で実現しますので完成させてください。
存在しない場合は、学生から Sno、Sname を選択してください
に
(SELECT * FROM ( l )
どこ(メートル)
(SELECT* FROM ( n )
ここで ( o ) );
問4(合計15点)
企業の内部情報システムの部分的に簡略化された関係モデルは次のとおりです。
- 従業員テーブル: EMPLOYEES(Eid、Ename、Address、Phone、Jid)、属性の意味は次のとおりです: 従業員コード、従業員名、自宅住所、連絡先番号、職務レベル コード。
- ジョブ レベル テーブル: JOB_LEVELS (Jid、Jname、Jbase_salary)、属性の意味は次のとおりです: ジョブ レベル コード、ジョブ名、ジョブの基本給与。
- 従業員給与テーブル: SALARY(Eid、attence_wage、メリット_pay、残業_wage、給与、税金、年、月)、属性の意味は次のとおりです: 従業員コード、勤怠給与、業績給与、超過給与、最終給与、税金、年、月。
その企業は毎月 25 日に従業員の賃金を計算します。まず、勤怠管理システムとパフォーマンス システムのデータに基づいて、従業員の勤怠、業績、時間外賃金が計算され、従業員の給与計算書に保存されます。次に、従業員のポジションの基本給に基づいて最終給与が計算され、従業員の給与記録が更新されます。最後に、従業員給与計算書に基づいて賃金の支払いが完了します。
問1(6点)
以下は、従業員の月 25 日の最終給与を計算するストアド プロシージャ プログラムです。空席部分にコードを入力してください。
CREATE PROCEDURE SalaryCalculation( ( a ) empld char(8), IN iyear 数値(4),
IN i月番号(2))
宣言する
出席番号(14, 2);
メリット番号(14, 2);
残業数(14, 2);
基数(14, 2);
すべての給与番号(14, 2);
始める
SELECT 勤怠賃金、功績賃金、残業賃金 INTO ( b )
更新用の給与 WHERE Eid=empld から;
SELECT Jbase_salary INTO :base
従業員 T1 より ( c )
WHERE T1.Jid=T2.Jid および T1.Eid= empld;
all_salary := 勤怠 + 功績 + 残業 + 基本;
給与を更新 給与を設定 = :all_salary
WHERE ( d ) AND 年 = i Year AND 月 = iMonth;
( e )
その他の場合は例外 ( f )
終わり
質問 2 (5 点)
従業員の給与明細の不正改ざん(内部犯罪を含む)を防止するため、給与明細の改ざん業務は毎月25日の勤務時間内に限り行うことを規定しています。以下は、従業員給与表の変更業務ルールに対応する手順です。空席部分にコードを入力してください。
CREATE TRIGGER CheckBusinessRule ( g )
各 ( i ) の給与に ( h ) を挿入または削除します。
始める
IF (TO_CHAR(sysdate, 'DD')<>( j ) OR (to_number(TO_CHAR(sysdate,'HH24')) ( k ) BETWEEN 8 AND 18) THEN
Raise_Error; // 例外をスローします
終了の場合:
終わり:
質問 3 (4 点)
人事部は従業員に対して毎月追加の賞罰を与える権限を持ち、賞罰は従業員の最終給与にも反映される。ある月の従業員の最終給与を計算する際に、人事部門が同時に従業員に2,000元の報酬を与えるトランザクション操作を実行し、対応するトランザクションの部分的なスケジューリングシーケンスが表4-1に示されているとします。
(1) このトランザクションのスケジューリングにはどのような同時実行性の問題があるのか説明してください。
(2) 同時実行性の問題は 2PL を使用して解決できますか? デッドロックは発生しますか?
質問 5 (15 点)
特定の機器の組立工程では複数の手順を踏む必要がありますが、作業スペースが狭いため、操作室で同時に作業できるのは1人だけです。そのため、各工程で使用済みアクセサリの納品が完了した後、オペレータがアクセサリを操作室に運んで設置します。設置プロセス中にアクセサリのコードをスキャンして、アクセサリの設置を自動的に記録する必要があります。
特定の種類のアクセサリの特定の取り付けを処理するために 3 つのトランザクションがあると仮定すると、トランザクション T1 は送信登録を担当し、T2 は取り付け登録を担当し、T3 は未使用のアクセサリの補充を担当します。3 つのトランザクションがすべて実行された後、T1 からの数量は、T2 に設置された数量と T3 に補充された数量の合計と等しくなります。データ項目 I には付属品の在庫数量が記録され、データ項目 J にはインストール成功数が記録されます。ある組み立てプロセスで、12 個のアクセサリが倉庫から出荷され、6 個が取り付けられました。データベース システムが障害から回復するためにチェックポイント メカニズムを使用すると仮定して、いくつかのログ ファイルを表 5-1に示します。ログ レコードの内容: <Ti, START> はトランザクション Ti が実行を開始することを意味し、<Ti, COMMIT> はトランザクション Ti がコミットすることを意味し、<Ti, D, V1, V2> はトランザクション Ti がデータ項目 D の値を V1 から V2 に変更することを意味します。例: <T1, D, 22, 3> は、トランザクション T1 がデータ項目の値を 22 から 3 に変更することを示します。<Ti, D, V> は、トランザクション Ti ロールバック データ項目 D の値を V にロールバックすることを意味します。<Ti, abort> は、トランザクション Ti ロールバックの終了を示します。CRASH は、システム ディスクにエラーがあることを意味します。以下の質問に答えてください。
質問1(5点)
データベース システムの一般的な種類の障害を 100 語以内で簡単に説明し、表 5-1 のログ レコードにデータベースのどの種類の障害が表示されるかを説明してください。
質問 2 (4 点)
システムの復元時にやり直す必要があるトランザクションのリスト (Redo) と元に戻す必要があるトランザクションのリスト (Undo) を入力してください。
問3(6点)
質問文に記載されているビジネス ロジックに従って、表 5-1 のログ レコードの空白 (a) を入力し、Undo リカバリの補償ログ レコードを指定し、空白 (b) と (c) を入力してください。
2023年上半期、午後はデータベースシステムエンジニアのリアルな質疑応答分析
質問 1 (15 点) このリンクをクリックすると、実際のテスト分析ビデオが表示されます
質問1(5点)
質問 2 (3 点)
(a) 部品コード (b) 購入数量
主キーは、主キー (モデル番号、サプライヤー名、部品コード、購入日) を組み合わせたものです。
外部キー: モデル番号、サプライヤー名、部品番号。
問3(7点)
(1)
(2)
店舗(店舗番号、住所、電話番号) 主キー:店舗番号
売上(店番号、型番、販売数量、販売日)結合主キー:(店番号、型番、販売日)、外部キー:店番号、型番
質問 2 (15 点)
問1(7点)
部品コード→(部品名、部品供給先、部品倉庫コード)
スペアパーツ倉庫コード → 倉庫住所
したがって、部品名、部品サプライヤー、部品倉庫コード、および倉庫住所は冗長な属性です。
挿入例外、更新例外、削除例外があります。
問2(8点)
BCNFは満足していません。
- 修理部品使用テーブル (ナンバー プレート番号、修理時間、部品コード、修理部品数量) 主キー: ナンバー プレート番号 + 修理時間 + 部品コード、外部キー: 部品コード。
- 部品情報テーブル(部品コード、部品名、部品供給先、部品倉庫コード) 主キー:部品コード、外部キー:部品倉庫コード。
- 倉庫情報テーブル(部品倉庫コード、倉庫住所)主キー:部品倉庫コード
質問 3 (15 点)
質問 1 (3 点)
(a) ユニーク (b) コース (c) Cno
質問 2 (4 点)
(d) 挿入 (e) Cno (f) 'C036' (g) 学生
質問 3 (4 点)
(h) K2.Cpno (i) LEFT (j) ON (k) K1.Cpno=K2.Cno
問4(4点)
(l) コース (m) は存在しません (n) SC
(o) SC.Sno=STUDENT.Sno および SC.Cno=COURSE.Cno
問4(合計15点)
問1(6点)
(a) IN (b) :勤怠、:メリット、:残業 (c) JOB_LEVELS T2 (d) eid=empId
(e) コミット (f) ロールバック
質問 2 (5 点)
(g) BEFORE (h) UPDATE (i) 行 (j) '25' (k) NOT
質問 3 (4 点)
(1) 人事部の賞罰事務の更新された最新給与が、最終給与計算の最終給与計算により上書きされる、すなわち更新漏れがある場合がある。
(2) はい、デッドロックが発生する可能性があります。
質問 5 (15 点)
質問1(5点)
(1) トランザクション内部障害、(2) システム障害、(3) メディア障害。
システムディスクエラーはメディア障害です。
解析:
質問 2 (4 点)
T2 トランザクションをやり直す (Redo) 必要があり、T3 トランザクションを元に戻す (Undo) 必要があります。
問3(6点)
(a)14 (b)<T3,I,8> (c)<T3,abort>