| bio | website | |
|---|---|---|
| location | United States | |
| age | 57 | |
| visits | member for | 2 years, 2 months |
| seen | 16 hours ago | |
| stats | profile views | 106 |
Long-time database design and software development consultant. My clients included evetrything from Fortune 100 companies to non-profits and mom-and-pop companies. I've worked with SQL databases since 1985. I'm a database generalist; I'm comfortable with every modern SQL dbms. My home server runs a half-dozen different database management systems. I test most of my answers under more than one of them.
I've also developed relational models for implementation in non-SQL environments, like Lotus Notes and plain C++ code.
I'm known for frequently saying
- ID numbers have nothing to do with normalization.
- Everything you know about state codes is wrong.
- Table names, column names, etc., are your database's API.
- Natural keys reduce the number of joins, and often improve performance.
- 5NF is your friend.
- Don't assume. Test.
|
1d |
comment |
Dropping Hypothetical Indexes Do you think running dbcc checktable is called for? |
|
May 16 |
comment |
Database table design question A sales order line item requires a minimum of four shipping containers? Is that right? |
|
Apr 25 |
comment |
Enforce indirect relationship You could well be right. That would be one of the hoops. |
|
Apr 25 |
comment |
Query Postgres For Combinations Where Both values are Unique to Each Other And your best effort at doing it yourself looks like . . . |
|
Apr 24 |
comment |
Is this table in 3NF? Neither normalization nor 3NF depend on my perspective or on my opinion. 3NF depends on eliminating transitive dependencies. Where's the transitive dependency in the original table? Even if there were one, it wouldn't justify the decomposition we see in this answer. No principle of normalization justifies what we see in this answer. |
|
Apr 23 |
comment |
Is this table in 3NF? "The argument goes that country depends on state and state depends on city." That's not true, though, is it? State certainly doesn't depend on city in the USA; we have dozens of Springfields. There are Santa Cruzes all over the world. (Springfields, too.) A foreign key can eliminate spelling errors and typos, but that won't affect the normal form. Any time you introduce an ID number--let alone three different ID numbers--in the name of normalization, you're almost certainly on the wrong track. |
|
Apr 23 |
comment |
Is this table in 3NF? If it's not in 3NF, there must be a transitive dependency. Where's the transitive dependency? |
|
Apr 21 |
comment |
Help with modeling this table Over the course of their careers, employees will have many companies. But at a single company, they also have something like a department (maybe more than one), a hire date, maybe a termination date, etc. What additional information do you want to store besides "Fred works for Slate & Co" and "George works for Spacely Sprockets"? Anything? |
|
Apr 21 |
comment |
Help with modeling this table I can imagine several different 5NF schemas for this. It depends mostly on how you want to model employer/employee relationships. How do you want to do that? |
|
Apr 20 |
comment |
Creating sequence for longer numeric values Is it ok to have gaps in the sequence? |
|
Apr 19 |
comment |
Unsure how to implement certain constraints and relations in this relational database schema MySQL doesn't enforce CHECK() constraints. Sometimes, you can replace a CHECK() constraint with a foreign key constraint. (But not this time.) The only practical way to implement "arrival city is different from departure city" in MySQL is with a trigger. |
|
Apr 17 |
comment |
How to permanently delete a row in oracle forever Define "ever". Are we allowed to recover deleted data by restoring from a year-old offsite backup tape? |
|
Apr 16 |
comment |
Database design: Dividing multiple identical tables, good or bad? Yes, more tables for more referential integrity. (But there's no "areas" table. There could be, though.) Usually you trust the local admins to a certain extent. They have a vested interest in being careful. People who take reservations over the phone wouldn't have insert or update permissions on "seats". |
|
Apr 15 |
comment |
Database design: Dividing multiple identical tables, good or bad? If you're confident in your data entry people, you can drop the check constraint for "area". In general, the more "flexible" your situation, the more tables you need to keep out bad data. |
|
Apr 14 |
comment |
Database design: Dividing multiple identical tables, good or bad? Thank you, Sid. I hope you know that I'm going to quote you on my CV. |
|
Apr 14 |
comment |
speeding up a query on MySql Which columns are varchar(200)? The source columns or the target columns? GROUP BY on 10 million rows will probably take a while. |
|
Apr 13 |
comment |
Functional Dependencies and Normal Forms Are you being asked to determine the normal form for the relation R{ WX Y Z }, or the normal forms for { WX Y }, { WX Z }, and { Y Z }? (When you write "determine the form of:...", the of usually refers to whatever comes after.) |
|
Apr 12 |
comment |
How database administrators can see my requests to MSSQL server? "Is there any other ways to see my activity?" Who cares? Are you trying to keep your activity a secret from the sysadmins? |
|
Apr 11 |
comment |
Column or new table Third normal form has to do with transitive dependencies. It has nothing to do with whether you store a school's name or its id number. (ID numbers have nothing to do with normalization.) |
|
Apr 11 |
comment |
IP Address lookup star schema design If I were in your shoes, I'd also want to test MySQL performance against PostgreSQL and its inet or cidr data type. |