2025年11月3日月曜日

クロニクル MacにPostgreSQLをインストール

 Homebrowは、導入済みとします。


1. ダウンロード


以下のサイトから、たどって、mac版のインストーラーをダウンロードしました。


https://www.postgresql.org/download/


postgresql-17.5-1-osx.dmg


がダウンロードされました。


2.インストール


ダウンロードしたファイルを実行しました。


セットアップのダイアログが起動してきます。


・postgresのパスワードをつける


・言語をja_JP.UTF8にする


以外は、全部デフォルトで実行しました。


本体のインストール終了後、「Application Stackのインストールをする?」のダイアログが上がってきますが、キャンセルしました。


3.確認


Finderで


[アプリケーション]-[PostgreSQL 17]-[SQL Shell (psql)]を起動する。


Server、Databaseなど、デフォルトのままで、パスワードを入れると接続できました。

( postgres=# のプロンプトが上がってきます。)


動いているようです。


4.ターミナルからも利用したい


4-1. 

.bash_profile


で、PATHに、


/Library/PostgreSQL/17/bin/


を追加しました。


4-2. 


新しいターミナルで、


psql -U postgres


で、パスワードを入れると、接続できました。


2025年11月2日日曜日

データベースのセキュリティ確保

 データベースのセキュリティ確保


1.通信を暗号化する


2.データベースに接続できる端末を必要最小限とする


3.データベースへアクセスするAPサーバなどのログをとる


4.データベースの操作ログをとる


5.データベースへの不正アクセスを検知する


6.データベースのアカウントを適切に設定する


7.データベースのオブジェクトに対して、適切なアクセス制御を行う


8.脆弱性の少ないDBMSを利用する


9.DBMSに対して、セキュリティパッチを適用する


10.不要な機能、モジュール、サービスなどは、削除や停止を行う


11.通信ポートをデフォルトから変更する


12.不要なアカウント、長期的に利用されていないアカウントを削除する


13.デフォルトのパスワードを変更する


14.デフォルトのロールから不要な権限を削除する


2025年11月1日土曜日

クロニクル RedHatにOracle Expressを導入してみる

1. 以下のサイトから、

https://www.oracle.com/database/technologies/xe-prior-release-downloads.html

Oracle 11gR2 Express  for linux 

をダウンロードしました。

Oracle-xe-11.2.0-1.0.x86_64.rpm.zip

がダウンロードされました。


2.ダウンロードしたzipを解凍します


3.インストール

rootでやっています。

#dnf -y localinstall  oracle-xe-11.2.0-1.0.x86_64.rpm

「swap space が不足する」でエラーになり、sawpを作成して再実行しました。


4.初期設定

 /etc/init.d/oracle-xe configure

を実行。


5. 確認

以下を実行して、環境変数を設定する。

 source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

コマンドラインから

sqlplus sys/(パスワード) as sysdba

で接続できました。


6.接続しているインスタンスを確認してみる

sqlplusで、以下のSQLを実行しました。

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE ;

INSTANCE_NAME
----------------
XE


7. 接続しているDBを確認してみる。

sqlplusで、以下のコマンドを実行しました。

SQL> SHOW PARAMETERS DB_NAME

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      XE



8. 停止してみる。


$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 木 5月 1 10:50:57 2025

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

SQL> connect sys as sysdba
パスワードを入力してください:
接続されました。
SQL> shutdown normal
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> quit


9.起動してみる

sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on ・・・・

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

SQL> connect sys as sysdba
パスワードを入力してください:
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area 1068937216 bytes
Fixed Size                  2233344 bytes
Variable Size             616565760 bytes
Database Buffers          444596224 bytes
Redo Buffers                5541888 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>




2025年9月27日土曜日

RDBMSが持つべき12のルール

E・F・コッドが提唱したもの 以下のルールの機能だけで、データベースの管理ができなければ ならない。

1.情報に関する原則


表の名前等も含む、すべての情報をカタログ(DBの表等)で記録する。

2.アクセスの保証


すべての情報は、表の名前、主キーの値、ドメインの名前でアクセス可能であること (アドレス指定などは、論理的になし)。

3.NULLの扱い


NULLが統一的な方法として取り扱えること。

4.オンラインカタログ


データと同じ表現方法、アクセス方法で、オンラインカタログを利用可能とする。

5.オンライン言語


データの定義、ビューの定義、トランザクション制御等を、単一の言語で実現できる。

6.ビューの更新


ビューを通しての更新が可能な場合は、RDBMSが実際の更新を、実表に対して行う。

7.高水準言語


高水準言語は、挿入、更新、削除において、一時に複数のタプルを処理できること。

8.物理的なデータの独立性


物理的なアクセス方法の変更等が、アプリケーションプログラムに影響を与えない。

9.論理的なデータの独立性


データ構造など論理的な変更が、アプリケーションプログラムに与える影響を最小化する。

10.整合性の独立


製造性のための制約条件が変更されても、アプリケーションプログラムへの影響を最小化する。

11.分散


位置などの分散に対して、アプリケーションは意識しない。

12.データ破壊からの独立


プログラムが制約を破壊しては、ならない。







2025年8月29日金曜日

クロニクル CentOSにMySQLを入れる

 1. MySQL Yumリポジトリの追加


https://dev.mysql.com/downloads/repo/yum/


から、対応するOSのrpm名を取得。


mysql84-community-release-el9-2.noarch.rpm


でした。


以下のコマンドで追加


sudo dnf install -y https://dev.mysql.com/get/mysql84-community-release-el9-2.noarch.rpm



2. インストール


sudo dnf install -y mysql-community-server



3.サービスの起動と有効化


sudo systemctl start mysqld

sudo systemctl enable mysqld



4. rootの初期パスワードを探す


grep 'temporary password' /var/log/mysqld.log



5.セキュリティ設定


sudo mysql_secure_installation


を実行。パスワードを聞かれるので、「4.」で探したものを利用。


新しいパスワードをつける


あとは、対話に沿って進める。



6. 接続


mysql -u root -p 


で、「5.」でつけたパスワードでログイン




2025年8月16日土曜日

オブジェクト指向におけるオブジェクト間の関係

 ・オブジェクト間の関係をリレーションと呼ぶ。

・リレーションには、次の種類が存在する。


1.is-a


   ・Aは、Bである、という関係

   ・人間は、動物である が例

   ・継承関係のこと


2.has-a


   ・Aは、Bを持っている、AはBから構成される、という関係

   ・車には、ハンドルがある が例

   ・集約(アグリげーション)、複合集約(コンポジション)となる






SQL vs NoSQL vs NewSQL - A comparative Study

 公開されている

SQL vs NoSQL vs NewSQL - A comparative Study

のキモの部分を読んで勉強してみたいと思います。


概要

RDBMSでは、データは表、あるいは、リレーションという形で保存される。

しかし、非構造データが主役となるビックデータには、RDBMSでは不十分。

ビックデータに対して高速な処理や、スケーラビリティの確保が

難しい。

そこで、ビックデータのためのスケーラブルで非構造化データに

対応したプラットフォームとして、NoSQLと呼ばれるシステムが登場した。

NoSQLには、key-valueペア、ドキュメント、グラフ、ワイドカラムがあり、

いずれもスキーマを必要としない。

NoSQLには、ACIDプロパティを保証品という欠点があり、RDBMSとの

互換性に問題があった。そこで、NewSQLが登場した。

NewSQLは、RDBMSにNoSQLの拡張性を加えたもの。


NoSQL

Data Model in NoSQL

NoSQLのデータモデルには、key-orientedストレージ、

グラフモデルなどがある。


Key based NoSQL Data Model

keyを利用してデータの保管やアクセスを行う。

key based modelの最も単純な形式は、key-valueストア。

keyに対応した任意のデータを持つことができる。

データに関する情報は、データベースでは管理されない。

Amazon DynamoDBなどがある。

別のタイプのekyモデルとして、ドキュメントモデルがある。

keyは、ドキュメントと呼ばれる楮かされたデータに対応する。

ドキュメントは、JSONなどのフォーマットで保管される。

この例としては、MongoDBなどがある。


-- つづきます。--