Skip to main content

Compute functional dependencies for database schema design and normalization: implication, closure, synthesis

Project description

REUSE status Binder

Overview

This package provides an Open Educational Resource (OER) to refresh prior knowledge about functional dependencies (FDs) and normalization of relational database schemata. Towards that goal, the package implements algorithms for the manipulation of functional dependencies; the package’s doc string explains the used vocabulary and contains examples.

Selected algorithms:

  • FD.rminimize(): Return a minimal cover of r-minimal FDs
  • FDSet.closure(): Return closure of attributes under given FDs
  • FDSet.lminimize(): Return minimum subset of lhs that determines rhs
  • FDSet.key(): Return a key
  • FDSet.basis(): Return non-redundant r- and l-minimal basis
  • RelSchema.synthesize(): Normalize via synthesis into set of 3NF schemata

A 3NF synthesis example is available as notebook on mybinder.org.

Side goal

Besides, the package may serve as sample Python code that respects usual coding conventions, which are checked with pre-commit hooks. The configuration file .pre-commit-config.yaml specifies test tools used here.

Origin of code

The code here is based on that file, which will not be maintained any longer.

Changelog

Changelog information is based on Keep a Changelog, where version numbers adhere to Semantic Versioning.

[Unreleased]

[1.1.0] - 2020-12-28

Added

  • Parameter minimize in RelSchema.synthesize().
  • Sample notebook with 3NF example by Codd at mybinder.

Fixed

  • Import in init.py.
  • Project URL in docstring.
  • Raw URL for coverage badge in setup.py.
  • URL for REUSE badge in README.md.

[1.0.1] - 2020-12-22

Fixed

  • Package URL and coverage badge in setup.py.

[1.0.0] - 2020-12-22

No change in functionality.

[1.0.0-rc.1] - 2020-12-22

Initial release. Code from there packaged for independent distribution.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

functional_dependencies-1.1.0.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

functional_dependencies-1.1.0-py2.py3-none-any.whl (32.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file functional_dependencies-1.1.0.tar.gz.

File metadata

  • Download URL: functional_dependencies-1.1.0.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.5

File hashes

Hashes for functional_dependencies-1.1.0.tar.gz
Algorithm Hash digest
SHA256 5eabc517007e29259b4a63a5571d7d9b23bf1206c5ac976be3d993e3e21e8d5b
MD5 a34794e2c59f263d99e388cc183e4bd8
BLAKE2b-256 a1ab9443c1961463715e55b10dd6e5fda1206d43fedd486c15277af76faad678

See more details on using hashes here.

File details

Details for the file functional_dependencies-1.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: functional_dependencies-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.5

File hashes

Hashes for functional_dependencies-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 16ebef2906d96c5e583412bd24762dabee0c50a3904fda8a0054aa3bcf7d93e3
MD5 ac8b6734110356de520f37dfa2092872
BLAKE2b-256 4e14f8dd8858e52275d9f17c8a96ae5fbdc2067174300ba57c23923f1f299dae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page