タグ

PostgreSQLに関するkyopecoのブックマーク (10)

  • 複合主キーを避けるべき理由 - 虎塚

    データベース設計の話をしていて、「連番の主キーは業務上意味のないデータだから、テーブルに持たせるのはムダだ。複合主キーにするべき」という意見を聞く機会がありました。 脊髄反射で「ないわー」と思ったものの、理由を上手く説明できなかったので、改めて考えてみました。 その結果、次のような結論に至りました。 単一の連番カラムによる主キーと、複合カラムによる主キーとで迷ったら 実装をシンプルにし、業務変更の影響範囲を小さくするために、複合主キーを避ける というわけで、調べたことや考えたことをメモしておきます。# 間違っている部分があれば、教えていただけると嬉しいです。 (2011/07/25 追記)複合主キーとサロゲートキーについては、要件やシステムに依存して多様な判断がありうると思います。にもかかわらず、「避けるべき」というタイトルにしたのは極端でした。申し訳ありません。ご指摘下さった皆さん、あり

    複合主キーを避けるべき理由 - 虎塚
  • PostgreSQLエラー「ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab」の原因と対処方法 | r_nobuホームページ (のぶねこブログ)

    TOP > PostgreSQLエラー「ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab」の原因と対処方法 PostgreSQLエラー「ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab」の原因と対処方法 IT・コンピュータ・家電等 psqlSQLファイルを指定して実行した際に、「invalid byte sequence for encoding "EUC_JP"」といったエラーが出る時がある。 《例》 psql:test.sql:2001: ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab この例の場合、psqlでtest.sqlというファイルを指定して実行したところ、EUC_JPの文

    PostgreSQLエラー「ERROR: invalid byte sequence for encoding "EUC_JP": 0x93ab」の原因と対処方法 | r_nobuホームページ (のぶねこブログ)
  • 人工キー(主キー自動生成)について、おさらい - argius note

    主キー(プライマリキー)を自動生成する方法について、おさらいしてみました。 「主キー」には「自然キー」と「人工キー」があり*1、それぞれ 自然キー システムの外部で一意となる属性を利用したキー 人工キー 自然キーが持てない場合にシステム内部で生成するキー のような意味です。(一部、Wikipediaを参考にしています。) 自然キーの例としては、社員番号やURIなどのIDがあります。 人工キーは、外部から意味のあるキーが渡されないようなケース、たとえばログのような情報は、キーにできそうな情報はタイムスタンプくらいしかありません。 ところが、主キーは一意=ユニークであることが確実でなければならず、タイムスタンプだけでは一意性に難があります。 ユニークなキーを生成する一般的な方法として、 アトミックに連番を生成(シーケンス) グローバルな一意IDの生成(UUID,GUID) O/Rマッパーの機能

    人工キー(主キー自動生成)について、おさらい - argius note
  • PostgreSQLをプログラムで操作する

    今回のおもな内容 サンプルデータベースの作成 PerlによるPostgreSQLの操作 C言語によるPostgreSQLの操作 PHP3によるPostgreSQLの操作 PostgreSQLの開発環境 PostgreSQLはいろいろな言語とのインターフェイスを持っていますが、今回は代表的なところとして、PerlとC言語でのインターフェイスや、PostgreSQLと一番組み合わせて使われることが多いと思われるApacheおよびPHP3を使ってのアプリケーション開発についても説明したいと思います。 1.サンプルデータベースの作成 何をするにしても、データベースがなければ話になりません。そこで、今回紹介するプログラムで使うためのサンプルデータベースを作成しましょう。とりあえず、氏名と電話番号および電子メールアドレスを管理する簡易アドレス帳ということにします。 まず、PostgreSQLのプロンプ

    PostgreSQLをプログラムで操作する
  • PostgreSQLをコマンドラインで操作する

    今回のおもな内容 ソースからインストール コンパイルとバイナリのインストール PostgreSQLの初期化 コマンドラインからデータベースを作成 データベースオブジェクトを操作する テーブルにデータを追加 select文で検索 psqlで使えるコマンド一覧 PostgreSQLは、LinuxやFreeBSDおよび一部の商用UNIXでは、パッケージシステムを用いて簡単にインストールすることも可能です。ただしRedHat系のLinux(RedHatやTurbo Linux、Vine Linuxなど)では、/usr直下のディレクトリ(/usr/binや/usr/lib)にファイルが配置されて、後でメンテナンスする場合などに少し戸惑いを感じるかもしれません(単に筆者だけかもしれませんが^^;;)。 そういうときは、ぜひともPostgreSQLをソースコードからコンパイルしましょう。その手順を紹介し

    PostgreSQLをコマンドラインで操作する
  • YAMAGUCHI::weblog

    はじめに こんにちは、Google Cloudのオブザーバビリティ/SRE担当者です。出張中で発売日にきちんとした記事が書けなかったのですが、去る2月24日に私が翻訳しました『効率的なGo―データ指向によるGoアプリケーションの性能最適化』という書籍がオライリー・ジャパン社より出版されました。書店ならびに各社オンラインストアでご購入いただけます。 www.oreilly.co.jp 効率的なGo ―データ指向によるGoアプリケーションの性能最適化 作者:Bartłomiej Płotkaオーム社Amazon 電子書籍版はオライリー・ジャパンのサイトにPDFおよびEPUBでの提供がありますので、そちらよりご確認ください。 『効率的なGo』をなぜ翻訳しようと思ったのか 私は業務において、SREやオブザーバビリティに関わる各種プラクティスの啓蒙や、それらの各種製品(Google Cloudのプロ

    YAMAGUCHI::weblog
  • PythonからPostgreSQLに大量データのinsert(その2)

    以前、PythonのPostgreSQL用のドライバがうまくインストール出来ないと記載しましたが、python-develが入って無かっただけっぽいです。 yum install python-devel で、 ① ocpgdb1.0.3 ② psycopg2-2.4 ③ PyGreSQL-4.0 ④ pg8000-1.08 の全てのドライバがinstall可能でした。 上記はPython2.6及び、2.7で確認しましたが、2.7の場合は④のインストールがいじらないとうまくいきませんでした。(詳細はここに記載されています) で、今回の趣旨はPythonからのBulkInsertを試してみようというものです。 driverですが、前回は④を使いましたが、今回は②psycopg2を使ってみました。 事前に、 CREATE TABLE hash ( id text PRIMARY KEY , v

  • Welcome to PyGreSQL — PyGreSQL 6.0.1

    Welcome to PyGreSQL¶ About PyGreSQL Copyright notice Download information Current PyGreSQL versions Older PyGreSQL versions Changes and Future Development Installation Distribution files Project home sites The PyGreSQL documentation Contents Indices and tables PyGreSQL Development and Support Mailing list Access to the source repository Issue Tracker Support Project home sites PyGreSQL Navigation

  • PyGreSQLのインストールでハマったメモ。 - dai-yamashitaの日記

    単純に自分の恥ですが。。。さらします。 PostgresSQLにアクセスするには、psycopg2が多い?みたいですが、個人的にはPyGreSQLが好きです。 カーソル扱うのがなんか。。。:-) PyGreSQLは以下でダウンロードしときます。(easy_installだと3.8がインストールされるみたい。) 現時点では、4.0が最新。 http://www.pygresql.org/readme.html#where-to-get 当然、PostgreSQLはインストール済み。(自分はソースコンパイルで入ってます) で、ダウンロードしたファイルを解凍して、 python setup.py buildってやると、 sh: pg_config: command not found Traceback (most recent call last): File "setup.py", line

    PyGreSQLのインストールでハマったメモ。 - dai-yamashitaの日記
  • PythonでPostgreSQLにアクセスする - greennoahの備忘録

    手順 PyGreSQLをインストールします 外部のマシンで稼動しているPostgreSQLにアクセスします →「ImportError: DLL load failed」というエラーが出力された。 →Webで調べるとlibpq.dllにパスが通っている必要があるみたいなのでパスを通す。CSEにlibpq.dllが入っているのでCSEにパスを通したら問題なく実行することができた。 pythonコードは以下のような感じで簡単にPostgreSQLにアクセスできます。 #! /usr/bin/python # coding:utf-8 import pg # pg.connectでPostgreSQLに接続 # args dbname, host, port, opt, tty, user, passwd con = pg.connect('zeeta','192.168.1.1',7625,'

    PythonでPostgreSQLにアクセスする - greennoahの備忘録
  • 1